【发布时间】:2014-04-17 10:36:29
【问题描述】:
我有一个旧工具需要在 Mac OSX 10.9.2 上重新编译,但该工具是在 32 位假设下编写的(不是由我编写的),如果不重写,纯 64 位编译将无法工作。
是否可以使用 Macports gcc (4.3) 和 -m32 标志? 32 位二进制文件会在 Mac OSX 10.9.2 的 64 位内核上运行吗?
我尝试将选项与一个简单的 helloworld.c 文件一起使用,但出现错误,但在网上没有找到解释:
%> gcc-mp-4.3 -m32 hello.c
ld: warning: ld: warning: ignoring file /opt/local/lib/gcc43/libgcc_s.10.5.dylib, missing required architecture i386 in file /opt/local/lib/gcc43/libgcc_s.10.5.dylib (1 slices)
ignoring file /opt/local/lib/gcc43/gcc/x86_64-apple-darwin13/4.3.6/libgcc.a, file was built for archive which is not the architecture being linked (i386): /opt/local/lib/gcc43/gcc/x86_64-apple-darwin13/4.3.6/libgcc.a
注意:原生 Xcode gcc 与源代码不兼容,因为 Xcode gcc 是基于 clang 的。
【问题讨论】: