在Xcode中的64位mac上编译opencv 2.4
我有一个opencv项目,我一直在Ubuntu12.04下开发,在mac上的Parells虚拟机上,它有x86_64体系结构。有许多屏幕切换性能问题,我认为是由于虚拟机造成的,在虚拟机中,linux视频模式会翻转几秒钟,而摄像头访问由opencv应用程序完成。我决定将项目转移到计算机mac端的Xcode中,以继续opencv开发。但是,我对xcode不太熟悉,在那里很难正确构建项目 我已经安装了xcode。 我在mac上下载并解压缩了最新版本的opencv,并运行:~/src/opencv/build/cmake gui-gxcode。。根据车库和其他各种位置的指示。 这似乎工作得很好(不过我现在想知道这里是否缺少一个体系结构设置,尽管它是Xcode中的64位intel)。 然后,我使用linux项目中的源文件设置了一个xcode项目,并将include目录更改为使用/opt/local/include/。。。而不是/usr/local/include/。。。 我在项目的构建设置中切换了xcode以使用LLVM GCC编译器 然后将C++的苹果LLVM对话框设置为语言方言到GNU++ 11(这可能与上面的行不一致) 我没有在xcode中使用makefile(我知道-它有自己的项目文件…) 我还遇到了一个链接器问题,看起来它们可以通过添加此链接器标志来解决:在Xcode中的64位mac上编译opencv 2.4,opencv,Opencv,我有一个opencv项目,我一直在Ubuntu12.04下开发,在mac上的Parells虚拟机上,它有x86_64体系结构。有许多屏幕切换性能问题,我认为是由于虚拟机造成的,在虚拟机中,linux视频模式会翻转几秒钟,而摄像头访问由opencv应用程序完成。我决定将项目转移到计算机mac端的Xcode中,以继续opencv开发。但是,我对xcode不太熟悉,在那里很难正确构建项目 我已经安装了xcode。 我在mac上下载并解压缩了最新版本的opencv,并运行:~/src/opencv/bu
-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
架构x86_64的未定义符号:
“cv::_InputArray::_InputArray(cv::Mat const&)”,引用自:
_主音中的主音
“cv::_OutputArray::_OutputArray(cv::Mat&)”,引用自:
_主音中的主音
“cv::Mat::deallocate()”,引用自:
main.o中的cv::Mat::release()
“cv::Mat::copySize(cv::Mat const&)”,引用自:
main.o中的cv::Mat::Mat(cv::Mat const&)
main.o中的cv::Mat::operator=(cv::Mat const&)
“cv::Mat::Mat(_iplimageconst*,bool)”,引用自:
_主音中的主音
“cv::imread(std::basic_string const&,int)”,引用自:
_主音中的主音
---剪断---
ld:找不到架构x86_64的符号
collect2:ld返回了1个退出状态
有人能提供一些关于下一步尝试的指导吗
谢谢,
Walt < P>在CMAI+2.10.10和XCual4.6-1上,在Mac OS X Lo10.10.5上编译和运行C++ OpenCV 2.4.4 编辑:在mac os x mountain lion 10.8.3和Xcode 4.5上使用opencv 2.4.5成功测试 拥有正确的工具
mkdir build
cd build
cmake -D WITH_TBB=OFF -D BUILD_NEW_PYTHON_SUPPORT=OFF -D BUILD_FAT_JAVA_LIB=OFF -D BUILD_TBB=OFF -D BUILD_EXAMPLES=ON -D CMAKE_CXX_COMPILER=g++ CMAKE_CC_COMPILER=gcc -D CMAKE_OSX_ARCHITECTURES=x86_64 -D BUILD_opencv_java=OFF -G "Unix Makefiles" ..
make -j8
sudo make install
./opencv-test-photo
- libopencv_core.2.4.4.dylib
- libopencv_highgui.2.4.4.dylib
- libopencv_缝合2.4.4.dylib
干杯。非常感谢……这解决了我的问题……问题出在“C++Std库”上。默认情况下是“libc++”。将其更改为“libstdc++”就成功了。非常感谢你,有一次,伟大的教程让我比大多数人走得更远。这对xcode 5和OpenCV 2.4.6.1有什么改变吗?我在sudo make安装过程中遇到一些错误,但我将尝试自己跟踪它们。