我有一个 opencv 项目,我一直在 ubuntu 12.04 下开发,在具有 x86_64 架构的 mac 上的 parallels VM 上。我认为存在许多屏幕切换性能问题是由 VM 造成的,其中 Linux 视频模式会翻转几秒钟,而摄像头访问是由 opencv 应用程序进行的。我决定将项目移至电脑mac端的Xcode中继续opencv开发。但是,我对 xcode 不太熟悉,并且无法在那里正确构建项目。
我已经安装了xcode。
我在 Mac 上下载并解压了最新版本的 opencv,然后按照 willowgarage 和其他各个位置的说明运行: ~/src/opencv/build/cmake-gui -G Xcode .. 。
这似乎工作正常(但是我现在想知道我是否在这里缺少架构设置,尽管它是 Xcode 中的 64 位 intel)。
然后,我使用 linux 项目中的源文件设置一个 xcode 项目,并将包含目录更改为使用 /opt/local/include/... 而不是 /usr/local/include/...
我在项目的构建设置中切换了 xcode 以使用 LLVM GCC 编译器
然后将Apple LLVM Dialog for C++设置为Language Dialect to GNU++11(这似乎可能与上面的行不一致)
我没有在 xcode 中使用 makefile(我知道 - 它有自己的项目文件......)
我还遇到了一个链接器问题,看起来可以通过添加此链接器标志来解决:
-lopencv_video
基于这里的类似帖子:其他线程然而,在这种情况下,该人在他们的项目中使用了 Makefile。
我尝试在 xcode 构建设置中的“其他链接器标志”下添加此链接器标志,但仍然出现构建错误。
我想我这里可能有两个问题,一是使用 Cmake 构建 opencv 库时的架构设置,二是我的项目中的链接器标志设置。
目前构建错误列表如下所示:
Undefined symbols for architecture x86_64:
"cv::_InputArray::_InputArray(cv::Mat const&)", referenced from:
_main in main.o
"cv::_OutputArray::_OutputArray(cv::Mat&)", referenced from:
_main in main.o
"cv::Mat::deallocate()", referenced from:
cv::Mat::release() in main.o
"cv::Mat::copySize(cv::Mat const&)", referenced from:
cv::Mat::Mat(cv::Mat const&)in main.o
cv::Mat::operator=(cv::Mat const&)in main.o
"cv::Mat::Mat(_IplImage const*, bool)", referenced from:
_main in main.o
"cv::imread(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)", referenced from:
_main in main.o
---SNIP---
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
谁能提供一些有关下一步尝试的指导?
谢谢,
沃尔特