编译MySQL源码时出现Cannot find sql_yacc.h错误求助
解决MySQL源码编译时CMake找不到sql_yacc.h的问题
可能的原因及解决步骤
1. 确认源码仓库完整克隆
MySQL源码包含子模块,直接克隆可能遗漏依赖文件,重新克隆并拉取所有子模块:
cd /home/siyu/software/mysql-learn rm -rf mysql-server git clone --recursive https://github.com/mysql/mysql-server.git
2. 手动生成sql_yacc.h文件
sql_yacc.h是bison解析sql_yacc.yy生成的头文件,即便安装了bison,CMake可能未自动触发生成流程,手动执行生成命令:
cd /home/siyu/software/mysql-learn/mysql-server/sql bison -d sql_yacc.yy
执行完成后,该目录会自动生成sql_yacc.h和sql_yacc.c文件。
3. 检查并升级bison版本
MySQL对bison版本有最低要求(通常需3.0及以上),先检查当前版本:
bison --version
若版本过低,在Manjaro上执行升级:
sudo pacman -S bison
4. 重新运行CMake配置
回到mysql-build目录,清理之前的CMake缓存后重新执行配置命令:
cd /home/siyu/software/mysql-learn/mysql-build rm -rf CMakeCache.txt CMakeFiles cmake ../mysql-server -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./mysql-boost
内容的提问来源于stack exchange,提问作者Dr.Fail to fall asleep
相关产品推荐
相关产品推荐

