我正在尝试使用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)
我可以做些什么来使一切都建立在相同的架构上?
答案 0 :(得分:0)
我最终偶然发现了与我使用的OpenCV库完全相同的OpenCV库,但使用了正确的架构(i386)。它是作为框架在this Github repository内提供的。
现在Xcode能够完成整个构建过程,因为所有内容都是在同一个arch中构建的! :d