我正在我的 multilib CLFS 机器上使用 CMake 编译 32 位 MySQL 5.6.6-m9。64 位编译没有问题,但 32 位失败:
/sources/mysql-5.6.6-m9/mysys/lf_alloc-pin.c: In function 'lf_pinbox_init':
/sources/mysql-5.6.6-m9/mysys/lf_alloc-pin.c:118:3: error: size of array 'compile_time_assert' is negative
lf_alloc-pin.c 的第 118 行是:
compile_time_assert(sizeof(LF_PINS) == 64);
导致此失败的原因是将 -m32 添加到 CXX 和 CPP 标志。如果我删除 -m32,它编译得很好,但会编译 64 位库。我需要 32 位库。
有没有什么办法解决这一问题?从 C 文件中删除 compile_time_assert 行会很糟糕吗?