从来源构建mysql/处理编译mysql的问题

第5章处理编译MySQL的问题

解决许多问题的解决方案涉及重新配置。如果要重新配置,请注意以下内容:

  • 如果CMake.在此之前已运行后运行,它可能会使用其先前的调用期间收集的信息。此信息存储在cmakecache.txt.。什么时候CMake.开始,它寻找该文件并在假设信息仍然正确时读取其内容。重新配置时,该假设无效。

  • 每次跑步CMake.,你必须跑制作再次重新编译。但是,您可能希望首先从以前的构建中删除旧对象文件,因为它们是使用不同的配置选项编译的。

要防止使用旧对象文件或配置信息,请在重新运行之前运行以下命令CMake.

在Unix上:

shell>制作干净的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>导出cc cxx

    要指定您自己的C和C ++编译器标志,请使用cmake_c_flags.cmake_cxx_flags.CMAKE选项。看编译器标志

    要查看您可能需要指定的标志,请调用mysql_config与之- cfflags.--cxxflags.选项。

  • 使用后,查看在编译阶段期间执行的命令CMake.配置MySQL,运行制作verbose = 1而不是只是制作

  • 如果编译失败,请检查是否mysql_maintainer_mode.选项已启用。此模式会导致编译器警告成为错误,因此禁用它可能会使编译继续。

  • 如果您的编译失败了错误,如以下任何一种错误,则必须升级版本制作到GNU.制作

    使:读者的致命错误:Makefile,第18行:宏观组成宏分配

    或者:

    使:文件`makefile'行18:必须是分隔符(:

    或者:

    pthread.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:#####:致命错误:超出最大表大小(32767)

    实际上没有超过表大小;错误是由旧版本中的错误引起的野牛

有关获取或更新工具的信息,请参阅系统要求第1章,从源安装MySQL