如何在 64 位 osx 上编译 gcc 32 位应用程序
Posted
技术标签:
【中文标题】如何在 64 位 osx 上编译 gcc 32 位应用程序【英文标题】:How to compile gcc 32bit app on 64bit osx 【发布时间】:2013-12-02 07:15:51 【问题描述】:我尝试在我的 mac osx 64bit 上编译一个 32 位应用程序
我有一个 32 位的库。
我尝试创建一个个人库
gcc -m32 -c fileA.c -Iinclude -o fileA.o gcc -m32 -c fileB.c -Iinclude -o fileB.o
一切正常
现在我创建 .a 文件
ar ruv ./lib/myLib.a fileA.o fileB.o
当我尝试启动时
gcc -m32 -o imageMod imageMod.c -Iinclude -Llib
我收到以下错误
架构 i386 的未定义符号:“_addozzo”,已引用 从: imageMod-nfyyGP.o ld 中的 _main:找不到体系结构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1 (使用 -v 查看调用)
谁能帮帮我?
【问题讨论】:
【参考方案1】:你需要告诉 gcc 在库中链接:
gcc -m32 -o imageMod imageMod.c -Iinclude -Llib -l:myLib.a
【讨论】:
我尝试但现在编译器返回此错误 ld: library not found for -l:myLib.a clang: error: linker command failed with exit code 1 (use -v to see invocation)以上是关于如何在 64 位 osx 上编译 gcc 32 位应用程序的主要内容,如果未能解决你的问题,请参考以下文章
在运行 64 位 linux 的 Armv8 (aarch64) 上编译并运行 32 位二进制文件
BFD_RELOC_64:使用 C++ 在 32 位 linux 上编译汇编器指令