2012-02-25 79 views
0

我在arm环境下在ubuntu环境中导入了由g ++编译的库文件(.a)。 我也试过编译器llvm。我创建了一个客观的C++项目,并希望使用这个库。 我使用了“编译为目标C++”的xcode编译选项“ ”我收到下面的链接错误。任何建议都是值得欢迎的。 ======“架构i386的未定义符号”错误链接.a库用于目标C++

为i386硬件架构未定义符号: “xxxClass :: yyyFunc(INT,字符*,字符*,整数&,浮子*)”,从引用:aaa.o

LD:符号(多个)未找到i386硬件架构 铛:错误:连接器命令失败,退出代码1(使用-v看调用)

LD:符号(多个)未找到i386硬件架构 铛:错误:链接器命令失败并退出代码1(使用-v查看调用)

+0

连接步骤如何完成?连接器的参数顺序非常重要! – 2012-02-25 16:14:44

回答

1

您想要在Xcode上链接一个在Linux上为ARM编译的库吗?听起来很危险;我不确定他们甚至使用相同的.o格式。在任何情况下,你得到的错误都是因为你正在链接x86(无论是主机还是iPhone模拟器),而不是ARM。

+0

smparkes,库(.a文件)是在linux(ubuntu,intel 686)中编译的,选项为-march i386,xcode和ios模拟器在苹果机器(i386)上运行,链接xcode库时发生错误项目。我使用g ++选项“arm”编译库时遇到同样的错误。 – task007 2012-02-26 01:38:29

+0

是的,要么这是永远不会工作,或我真的错过了什么。 Linux上的对象格式是ELF。在OS X上,它是Mach-O。 – smparkes 2012-02-26 02:02:24

+0

如果你从Linux开始,它可能是开源的。只需在Mac OS X上编译它即可。这是解决对象格式差异的最佳方法。 – alternative 2012-02-26 13:11:36

相关问题