【发布时间】:2013-11-14 20:16:05
【问题描述】:
我正在尝试使用 cmake 在 64 位系统上构建 32 位共享库:
CMAKE_C_FLAGS=-m32;CMAKE_CXX_FLAGS=-m32;CMAKE_LD_FLAGS=-m32 -L/usr/lib/i386-linux-gnu;CMAKE_SHARED_LIBRARY_C_FLAGS=-m32;CMAKE_SHARED_LIBRARY_CXX_FLAGS=-m32;CMAKE_SYSTEM_LIBRARY_PATH=/usr/lib/i386-linux-gnu;CFLAGS=-m32;LDFLAGS=-m32;CXXFLAGS=-m32 cmake
如您所见,我尝试添加在堆栈溢出时发现的所有变量,但 cmake 仍在添加 64 位 libxml2 而不是 32 位:
-- 检查模块“libxml-2.0”
-- 找到 libxml-2.0,版本 2.7.8
-- 未找到 xmllint 程序。如果您想验证生成的 doc 文件,请安装它。
-- 找到 LibXml2:/usr/lib/x86_64-linux-gnu/libxml2.so
如何强制 cmake 使用位于 /usr/lib/i386-linux-gnu 的 32 位版本?
【问题讨论】:
-
@Vertexwahn:除了发帖人显然读过它。他们显然只是设置有问题。
-
没有
CMAKE_LD_FLAGS,cmake变量叫CMAKE_EXE_LINKER_FLAGS。不过,它从 environment 变量LDFLAGS获取默认值。您编写的以分号分隔的字符串不是任何内容的有效语法。它包含环境和 cmake 变量的混合。你能重现你使用的确切命令吗?
标签: c gcc x86 cmake 32bit-64bit