【问题标题】: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'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-24
        • 2018-03-01
        • 2019-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多