【问题标题】:Compile MariaDB errors occur (could not find GnuTLS, but it installed)编译 MariaDB 发生错误(找不到 GnuTLS,但它已安装)
【发布时间】:2017-08-15 06:21:27
【问题描述】:
cmake . -DCMAKE_INSTALL_PREFIX=/root/mariadb -DDEFAULT_CHARSET=utf8 -
DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -
DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -
DWITH_FEDERATED_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mariadb
然后错误:
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 处的 CMake 错误(消息):
找不到 GnuTLS(缺少:GNUTLS_LIBRARY GNUTLS_INCLUDE_DIR)
(需要至少版本“3.3.24”)
调用堆栈(最近的调用优先):
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake/Modules/FindGnuTLS.cmake:61 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
libmariadb/CMakeLists.txt:291 (FIND_PACKAGE)
下面是我的截图
【问题讨论】:
标签:
compiler-errors
mariadb
【解决方案1】:
尝试使用以下命令安装gnutls-dev:
sudo apt-get install gnutls-dev
【解决方案2】:
遇到了同样的错误:
找不到 GnuTLS(要求至少是版本“3.3.24”)
我已经降级到 v3.3.24 虽然有更新,以避免如果需要确切的 3.3.24,但错误再次发生;
安装后续包解决了我在 CentOS 7 上的问题;在重新运行 cmake 之前不要忘记删除 CMakeCache.txt。
yum -y install libaio
yum -y install libaio-devel
yum -y install bison
yum -y install bison-devel
yum -y install zlib-devel
yum -y install openssl
yum -y install openssl-devel
yum -y install ncurses
yum -y install ncurses-devel
yum -y install libcurl-devel
yum -y install libarchive-devel
yum -y install boost
yum -y install boost-devel
yum -y install lsof
yum -y install wget
yum -y install gcc
yum -y install gcc-c++
yum -y install make
yum -y install cmake
yum -y install perl
yum -y install kernel-headers
yum -y install kernel-devel
yum -y install pcre-devel
【解决方案3】:
我能够解决其中一些问题,但最终未能在 centos 6 上构建。
mkdir build-mariadb; cd build-mariadb
cmake .. -DBUILD_CONFIG=mysql_release -DWITH_SSL=system
但这导致在制作过程中出现更多问题:
CMakeFiles/CMakeError.log:cc1plus:
error: unrecognized command line option "-std=gnu++11"
为了解决这个问题,我在所有 CMakeLists.txt 的顶部添加了:
SET(CMAKE_CXX_FLAGS "-std=gnu++0x")
我用 find 来做这个:
cd ..
find . -type f -name 'CMakeLists.txt' -exec sed -i '1iSET(CMAKE_CXX_FLAGS "-std=gnu++0x")' {} \+
我放弃了尝试按照https://gcc.gnu.org/wiki/Atomic/GCCMM 构建外部原子库
错误是:
undefined reference to `my_atomic_storeptr'