Linux 64位:使用cmake对32位目标进行交叉编译

时间:2020-03-05 14:21:33

标签: linux gcc cmake cross-compiling 32bit-64bit

我在Linux 64位系统中使用 gcc + cmake ,我的编译目标是Linux 32位系统。

所以我在{em> CMAKE_C_FLAGS 中添加了-m32

但是随后 cmake 失败,并显示以下消息:The C compiler "/usr/bin/gcc" is not able to compile a simple test program.

当然,这是因为32位可执行文件无法在64位arch上运行。

我看过cross compilation cmake's page,但看来对我来说很复杂。

所以,我的问题是:有没有一种方法可以使用 cmake 来简单地构建32位二进制文​​件(exe或lib)?

有关信息,这是我使用环境变量尝试的操作:

  1. `${myflag}`添加到 CMAKE_C_FLAGS
  2. myflag 设置为空。
  3. 调用 cmake 生成一个makefile(这样它将成功检查编译器)
  4. myflag 设置为-m32
  5. 调用 make (这样它将使用我的-m32选项
  6. 进行编译

但是 gcc 似乎不评估用户环境变量。

0 个答案:

没有答案
相关问题