XCode未定义参考

时间:2013-05-17 15:46:06

标签: ios xcode compiler-errors clang llvm-gcc

我使用llvm-g ++ - 4.2通过命令行编译了一个静态库。当我尝试链接该库并在XCode中构建应用程序时,我得到了这个:

Undefined symbols for architecture armv7: (null): "__ZN12NamespaceOne5NamespaceTwo10NamespaceThree11functionEPDv2_x", referenced from: ...

(请注意,我正在混淆实际的命名空间和函数名称)

当我使用nm查看库时,我看到了:

000007cc T __ZN12NamespaceOne5NamespaceTwo10NamespaceThree11functionEPU8__vectorx

定义了该方法,但最终的错位名称略有不同。是不是XCode(使用clang ++)不喜欢我的llvm-g ++ - 4.2库?

2 个答案:

答案 0 :(得分:0)

我猜这个库是C ++代码,你试图从Objective-C(或C)文件访问它。您需要使用“C ++”文件(xxx.cc)或Objective-C ++(xxx.mm)类为其创建某种缓冲区。

答案 1 :(得分:0)

因此,经过一些额外的修补,看起来问题确实是我使用llvm-g ++来编译静态库并使用clang来构建应用程序。将应用程序的编译器更改为llvm-g ++。谢谢大家!