链接问题与XCode中的C库 - 文件是为不支持的文件格式构建的,而不是所链接的体系结构

时间:2011-04-27 04:32:57

标签: iphone objective-c c xcode

所以我试图在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?

2 个答案:

答案 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进行构建。