mysql源码编译中存在的问题

问题一:CMake Error: cmake_symlink_library: System Error: Operation not supported

现象:
在make的过程中存在:

[ 14%] Building C object libmysql/CMakeFiles/clientlib.dir/__/sql-common/my_time.c.o
[ 14%] Building C object libmysql/CMakeFiles/clientlib.dir/__/sql-common/client_plugin.c.o
[ 14%] Building CXX object libmysql/CMakeFiles/clientlib.dir/__/sql-common/client_authentication.cc.o
[ 14%] Building C object libmysql/CMakeFiles/clientlib.dir/__/sql-common/get_password.c.o
[ 14%] Building CXX object libmysql/CMakeFiles/clientlib.dir/__/sql/net_serv.cc.o
[ 14%] Building C object libmysql/CMakeFiles/clientlib.dir/__/sql-common/pack.c.o
[ 14%] Building C object libmysql/CMakeFiles/clientlib.dir/__/sql/auth/password.c.o
[ 14%] Building CXX object libmysql/CMakeFiles/clientlib.dir/__/sql/auth/sha2_password_common.cc.o
[ 14%] Building C object libmysql/CMakeFiles/clientlib.dir/mysql_trace.c.o
[ 14%] Linking CXX static library ../archive_output_directory/libclientlib.a
[ 14%] Built target clientlib
Scanning dependencies of target libmysql
[ 14%] Building CXX object libmysql/CMakeFiles/libmysql.dir/libmysql_dummy.cc.o
[ 14%] Linking CXX shared library libmysqlclient.so
CMake Error: cmake_symlink_library: System Error: Operation not supported
CMake Error: cmake_symlink_library: System Error: Operation not supported
make[2]: *** [libmysql/libmysqlclient.so.20.3.14] Error 1
make[2]: *** Deleting file `libmysql/libmysqlclient.so.20.3.14'
make[1]: *** [libmysql/CMakeFiles/libmysql.dir/all] Error 2
make: *** [all] Error 2

原因分析:
使用vmware的共享文件夹,直接在windows和linux的共享文件夹下进行相应的编译了
将mysql的源代码复制到本地操作系统,再进行编译就可以了。
同时注意,如果有符号连接,则也可以出现这样的问题
使用交叉编译的时候,编译最好还是通过linux本地的系统来实现
而windows编码到linux的同步,可以使用svn或beyond compare对比,做代码合入。在这个过程中使用mysqld编译的话,是可以使用samba服务来实现的

问题2:lex_hash.h 和mysql_version.h

这个两个C语言的头文件,是在我们编译的过程中生成的。源代码目录中并不存在。
具体的原理需要进上步学习,现在先记录一下。
在linux源码编译的系统中,通过cmake和make之后,就会生成
mysql_version.h的生成目录:mysql5.7.27/include/mysql_version.h
lex_hash.h的生成目录:sql/lex_hash.h

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值