所以我试图在Objective-C,iPhone项目中使用C库。我尝试编译时收到此链接器错误:
文件是为不受支持的文件构建的 格式不是架构 被链接(i386)
我使用标准
构建此库./配置 使
我应该使用哪种架构来处理iPhone项目?谢谢! 的更新
我更新了Makefile并将-arch i386添加到CFLAGS行。当我现在运行make my时会出现此错误:
编译spammer.c gcc -o spammer spammer.o ../src/libircclient.a -lpthread ld:警告:在../src/libircclient.a中,文件是为不支持的文件格式构建的,而不是链接的体系结构(x86_64)
这是否意味着我需要在某处编辑另一个makefile?
答案 0 :(得分:1)
它可能是为x86_64构建的,这是默认设置。您需要修改库,以便为i386编译并匹配您的应用程序。
通常,您可以在运行configure之前将CFLAGS环境变量设置为-arch i386。确保先做一个“make dist clean”。如果这不起作用,您也可以在configure创建它之后手动编辑Makefile,并将-arch i386添加到CFLAGS =行。
答案 1 :(得分:0)
此错误:
Compiling spammer.c gcc -o spammer spammer.o ../src/libircclient.a -lpthread ld: warning: in ../src/libircclient.a, file was built for unsupported file format which is not the architecture being linked (x86_64)
在构建示例时出现,这不是你想要的吗?
在SRC文件夹中创建一个make,并使用-arch i386或-arch arvm7进行构建。