CentOS7安裝mysql8.0編譯報錯集合

如下都是我安裝mysql8.0遇到的一些報錯和解決方法mysql

一、does not appear to contain CMakeLists.txt.c++

緣由:mysql下載的源碼包不對sql

解決方法:下載正確的mysql源碼包。vim

 

二、配置報錯:Please install the appropriate openssl developer package.app

 

解決方法:安裝openssl-develide

yum -y install openssl-devel

 

 三、配置報錯:Could NOT find Cursesui

解決方法:安裝ncurses-develthis

yum -y install ncurses-devel

 

四、編譯報錯:Please do not build in-source.  Out-of source builds are highlyspa

緣由:是它建議你不要構建源代碼。3d

解決辦法:在配置的時候加入字段:-DFORCE_INSOURCE_BUILD=1

 

五、配置報錯:The C compiler identification is unknown

解決辦法:作一個gcc的軟連接。

ln -s /usr/local/gcc/bin/gcc /usr/bin/cc

 

六、編譯報錯:/usr/lib/libstdc++.so.6: version `CXXABI_1.3.9' not found

由於libstdc++.so.6的庫是使用的之前的老庫。

解決辦法:修改軟連接

find / -name libstdc++.so.6
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6_old
ln -s /usr/local/gcc/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6

 

七、編譯報錯:'SYS_gettid' has not been declared in this scope

 

解決方法:在該文件上添加一個頭文件。

vim /usr/local/src/mysql-8.0.16/storage/innobase/buf/buf0buf.cc 
       #在第一行添加
       #include "sys/syscall.h"

 

 

八、編譯報錯:‘os_compare_and_swap_thread_id’ Has not been declared in this scope

解決辦法:修改報錯文件內容

vim /usr/local/src/mysql-8.0.16/storage/innobase/lock/lock0lock.cc
      #將 「os_compare_and_swap_thread_id」 修改成
      os_compare_and_swap_lint

 

九、編譯報錯:/usr/bin/ar: ../../archive_output_directory/libz.a

解決方法:從新配置編譯

make clean
cmake .....(你的配置參數)
make

 

十、編譯報錯:_DIAGASSERT、libedit_fgetln、__arraycount、libedit_fgetln an undefined reference

解決方法:在各文件里加入sys.h頭文件

#在文件中加入
#include <sys.h>

 

十一、mysql登陸報錯:Segmentation fault

解決辦法:找到源碼中terminal.c文件,修改以下圖,而後從新編譯。

相關文章
相關標籤/搜索