0

我正在尝试在 Objective-C++ 中使用 Xcode 开发一个 iOS 应用程序(因此使用 .m、.mm 和 .cpp 文件)。.cpp 文件使用第三方库 (OpenCV)。

链接时构建失败,并出现如下警告(导致未定义的引用错误):

ld: warning: ignoring file /opt/local/lib/libopencv_calib3d.dylib,
file was built for unsupported file format
( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 )
which is not the architecture being linked (i386): 
/opt/local/lib/libopencv_calib3d.dylib

我的拱门是i386

我可以在构建日志中看到 Xcode 运行了以下命令:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch i386 ...

我不知道它是否相关,但是当我输入llvm-g++ --version终端时,我得到:

i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)

我能做些什么来让所有东西都建立在同一个架构上?

4

1 回答 1

0

我终于偶然发现了与我使用的完全相同的 OpenCV 库,但具有正确的架构 (i386)。它是作为一个框架提供的,位于这个 Github 存储库中。

现在 Xcode 能够完成整个构建过程,因为一切都构建在同一个拱门中!:D

于 2013-07-16T07:51:15.780 回答