【问题标题】:Building 32bit shared library on 64 bit Linux with cmake使用 cmake 在 64 位 Linux 上构建 32 位共享库
【发布时间】: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


【解决方案1】:

变量CMAKE_LD_FLAGS,它叫CMAKE_EXE_LINKER_FLAGS

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2014-08-23
    • 2012-11-26
    • 2012-01-13
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 2011-07-19
    • 2012-02-16
    相关资源
    最近更新 更多