草庐IT

mysql - 在 CentOS 6.7 上编译 MySQL 5.6.30 - "Manually-specified variables were not used"

coder 2023-10-22 原文

我已经下载并解压了 mysql-5.6.30.tar.gz 源文件,我正在使用以下 CMAKE 命令:

cmake /mysql-5.6.30 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_CHARSET=CP1251=1 
-DENABLE_THREAD_SAFE_CLIENT=1 -DMAX_INDEXES=250 -DDOWNLOAD_BOOST=1 
-DWITH_BOOST=%HOME/mysqlboost -DENABLE_DOWNLOADS=1

除了 MAX_INDEXES 值为 250 之外,大部分都是正常的。客户对此有非常具体的要求,这也是我尝试从源代码编译它的原因(似乎没有办法改变一旦安装了 MySQL,这个值就必须在编译时完成。

CMake 运行整个编译(在我修复了各种依赖项丢失等问题之后),但在结束时状态:

-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:
    CMAKE_CC_COMPILER
    DOWNLOAD_BOOST
    ENABLE_THREAD_SAFE_CLIENT
    MAX_INDEXES
    WITH_BOOST
    WITH_CHARSET
-- Build files have been written to: /mysql-5.6.30

这有点问题,因为我特别需要将 MAX_INDEXES 写入构建文件,以便我可以用它安装 MySQL。谁能告诉我 A) 为什么它会忽略我传递给它的每一个变量?和/或 B) 是否有任何其他方法在 MySQL 安装中强制执行 MAX_INDEXES(至少 200)。如果有帮助,可以是 5.6 或 5.7。

谢谢。

最佳答案

您可以从 MySQL 源目录(已测试)解决 MAX_INDEXES 和 ENABLE_THREAD_SAFE_CLIENT 问题:

MY_FLAGS="DMAX_INDEXES=256 -DENABLE_THREAD_SAFE_CLIENT"
cmake -DCMAKE_C_FLAGS="$MY_FLAGS" -DCMAKE_CXX_FLAGS="$MY_FLAGS" .

它忽略你的变量的原因是因为它们不是 Cmake 变量,而是 MySQL 源引用的宏(一些)。

Cmake 理解的变量记录在https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html

对于内部宏,您必须在 MySQL 源中搜索。

关于mysql - 在 CentOS 6.7 上编译 MySQL 5.6.30 - "Manually-specified variables were not used",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36939570/

有关mysql - 在 CentOS 6.7 上编译 MySQL 5.6.30 - "Manually-specified variables were not used"的更多相关文章

随机推荐