许多问题的解决方案都涉及到重新配置。如果你重新配置,请注意以下几点:
如果CMake在它之前运行之后运行,它可以使用在以前调用期间收集的信息。此信息存储在
CMakeCache.txt
.当CMake开始时,它查找该文件并在假定信息仍然正确的情况下读取它的内容(如果它存在)。当你重新配置时,这个假设是无效的。每次你奔跑CMake你必须跑使再次编译。但是,您可能希望首先从以前的构建中删除旧的对象文件,因为它们是使用不同的配置选项编译的。
如果需要避免使用旧的对象文件或配置信息,请在重新运行前执行以下命令CMake:
在Unix:
shell> rm CMakeCache.txt
在Windows上:
壳> devenv MySQL。sln /clean shell> del CMakeCache.txt
如果在源树之外构建,请在重新运行之前删除并重新创建构建目录CMake.有关在源树之外进行构建的说明,请参见如何使用CMake构建MySQL服务器.
在某些系统上,由于系统包含文件的差异,可能会出现警告。下面的列表描述了其他在编译MySQL时发现的最常见的问题:
要定义使用哪种C和c++编译器,可以定义
CC
而且CXX
环境变量。例如:shell> CC=gcc shell> CXX=g++ shell> export CC CXX
要指定您自己的C和c++编译器标志,请使用
CMAKE_C_FLAGS
而且CMAKE_CXX_FLAGS
CMake选项。看到编译器标志.要查看可能需要指定哪些标志,请调用mysql_config与
——cflags
而且——cxxflags
选项。查看在编译阶段执行了哪些命令CMake要配置MySQL,请执行以下命令使VERBOSE = 1而不是仅仅使.
如果编译失败,请检查
MYSQL_MAINTAINER_MODE
选择启用。此模式会使编译器警告变成错误,因此禁用该模式可以使编译继续进行。如果编译失败,并出现以下错误,则必须升级版本使在GNU使:
make: reader: Makefile中的致命错误,第18行:格式错误的宏赋值
或者:
第18行:必须是一个分隔符(:
或者:
h:没有这样的文件或目录
Solaris和FreeBSD都有问题使项目。
GNU使3.75是已知有效的。
的
sql_yacc.cc
文件由sql_yacc.yy
.通常,构建过程不需要创建sql_yacc.cc
因为MySQL自带预生成的副本。但是,如果你需要重新创建它,你可能会遇到这个错误:“sql_yacc。yy”,行xxx致命:默认动作导致潜在的…
这是一个迹象,你的版本yacc是有缺陷的。您可能需要安装最新版本的野牛的GNU版本yacc),然后用它来代替。
版本的野牛超过1.75可能会报告此错误:
sql_yacc.yy:#####: fatal error: maximum table size (32767) exceeded
实际上没有超过最大表大小;该错误是由旧版本的bug引起的野牛.
获取或更新工具的相关信息请参见系统要求第2.9节,“从源代码安装MySQL”.