2013-05-17 88 views
0

我已经通过命令行使用llvm-g ++ - 4.2编译了一个静态库。当我试图针对库链接,并建立在Xcode的应用程序,我得到这个:XCode未定义的参考

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

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

当我看到在图书馆使用纳米,我看到:

000007cc T __ZN12NamespaceOne5NamespaceTwo10NamespaceThree11functionEPU8__vectorx 

的方法被定义,但重整名称在端稍有不同。 XCode(使用clang ++)不喜欢我的llvm-g ++ - 4.2库吗?

+0

有关潜在解决方案,请参阅http://stackoverflow.com/questions/6429494/undefined-symbols-for-architecture-armv7 – bengoesboom

回答

0

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

0

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