【发布时间】:2013-10-25 05:51:55
【问题描述】:
我有一个我一直在 ubuntu 12.04 下开发的 opencv 项目,在具有 x86_64 架构的 mac 上的 parellels VM 上。我认为有许多屏幕切换性能问题是由于 VM 造成的,其中 linux 视频模式会翻转几秒钟,而摄像头访问是由 opencv 应用程序进行的。我决定将项目移到电脑mac端的Xcode中继续opencv开发。但是,我对 xcode 不太熟悉,并且无法让项目在那里正确构建。
我已经安装了 xcode。 我在 mac 上下载并解压缩了最新版本的 opencv,然后运行:~/src/opencv/build/cmake-gui -G Xcode .. 根据来自 willowgarage 和其他各种位置的说明。 这似乎工作正常(但是我现在想知道我是否在这里缺少架构设置,尽管它在 Xcode 中是 64 位英特尔)。 然后,我使用 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
基于此处的类似帖子:other thread 但是在这种情况下,这个人在他们的项目中使用了 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
谁能提供一些关于下一步要尝试什么的指导?
谢谢, 沃尔特
【问题讨论】:
标签: opencv