MySQL 5.6使用CMake作为编译配置工具,笔者在CentOS 6.5上进行MySQL 5.6.21 Community Server源码编辑时,碰到了一个初级问题,现在重新回顾一下整个过程。
首先,笔者使用以下命令执行编译配置。
cmake -DCMAKE_INSTALL_PREFIX=/u01/mysql
因为gcc和gcc-c++编辑器没有安装,直接报错。
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
接着,安装gcc和gcc-c++编辑器。
yum install gcc gcc-c++
接着,报另外一个错误。
-- Running cmake version 2.8.12.2
-- The CXX compiler identification is GNU 4.4.7
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- MySQL 5.6.21
-- Packaging as: mysql-5.6.21-Linux-i686
-- Could NOT find Threads (missing: Threads_FOUND)
-- Could NOT find Threads (missing: Threads_FOUND)
-- Check if the system is big endian
-- Searching 16 bit integer
CMake Error at /usr/share/cmake/Modules/TestBigEndian.cmake:44 (message):
no suitable type found
Call Stack (most recent call first):
configure.cmake:647 (TEST_BIG_ENDIAN)
CMakeLists.txt:416 (INCLUDE)
-- Configuring incomplete, errors occurred!
摸不到头脑,上网查了一下,说源码文件删除之后重新解压可以解决这个问题。这么做之后,CMake的运行日志比之前长,报错信息也不同了。
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE):
Curses library not found. Please install appropriate package,
看到是缺少另外一个软件包。
yum install ncurses-devel
再次运行CMake,报错信息还是依旧。这时,发现有报错信息中还有以下信息。
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.