许多问题的解决方案都涉及到重新配置。如果您重新配置,请注意以下事项:
如果CMake如果在以前运行过之后再运行,则可以使用在以前调用期间收集的信息。此信息存储在
CMakeCache.txt
.当CMake开始时,它查找该文件并读取其内容(如果它存在),假设信息仍然正确。当您重新配置时,这个假设是无效的。每次你奔跑CMake,你必须跑使再次重新编译。但是,您可能希望首先从以前的构建中删除旧的目标文件,因为它们是使用不同的配置选项编译的。
为了防止使用旧的目标文件或配置信息,请在重新运行前执行以下命令CMake:
在Unix:
清除shell> rm CMakeCache.txt
在Windows上:
shell> 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行:格式错误的宏赋值
或者:
make: file' Makefile'第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
实际上没有超过表的最大大小;的旧版本中的错误导致此错误野牛.
有关获取或更新工具的信息,请参见2.9节,“从源代码安装MySQL”.