我正在尝试将最新版本的openCV添加到我的iOS项目中,但是当我编译时,我得到大约30个链接错误:
例:
Undefined symbols for architecture i386:
"cv::merge(std::vector<cv::Mat, std::allocator<cv::Mat> > const&, cv::_OutputArray const&)", referenced from:
Run Code Online (Sandbox Code Playgroud)
我在一个带有简单视频捕获的虚拟应用程序中添加了OpenCV框架以及所有其他必需的框架(遵循链接中的教程),并且它工作得很好.
我不确定为什么它可以在一个地方如此顺利地工作,但不能在另一个地方工作.我唯一的想法是我在两个应用程序之间编译不同的架构,但我认为两者都是针对armv7和armv7s.
有什么可能导致链接错误的想法?
fou*_*dry 13
检查一下:(假设您使用的是LLVM编译器)
目标>构建设置> Apple LLVM编译器4.1 - 语言> C++标准库
尝试选择
libstdc++ (GNU C++ standard library)`
Run Code Online (Sandbox Code Playgroud)
然后尝试切换到
libc++ (LLVM C++ standard library with C++11 support)
Run Code Online (Sandbox Code Playgroud)
libstdc ++似乎适用于较旧版本的openCV,libc ++适用于较新版本.如果你设置错误(无论哪种方式),你都会看到这些错误.
如果这不是原因,请在每个项目中并排打开构建设置并检查每个设置......
我已经通过这个作战最近-见我的问题在这里,答案在这里和GitHub的样品在这里.github项目包括几天前从当前源编译的opencv框架.现在我正在整理一个多目标样本,如果在10.6/XCode4.2或10.7/XCode4.4 +下编译,则链接到不同版本的框架.[在这里 github ]
更新
正如@mikewoz所要求的那样,您可能需要运行当前的openCV libstdc++以保持与其他框架的兼容性.可以使当前构建具有libstdc++兼容性.有关详细信息,请参阅我在此处回答Mike的问题:
适用于iOS的libstdc ++ OpenCV 2.4.3+?
| 归档时间: |
|
| 查看次数: |
4096 次 |
| 最近记录: |