有人能提供一个详细的指南来教我如何在Mac OS X Lion上用Xcode编译OpenCV 2.3.1吗?
我快被弄疯了……我已经获取了源代码,使用cmake创建了Xcode模板并尝试构建,但它失败了,出现了大约200个错误。
先感谢您, Dom
解决方案请看我的答案帖子。
有人能提供一个详细的指南来教我如何在Mac OS X Lion上用Xcode编译OpenCV 2.3.1吗?
我快被弄疯了……我已经获取了源代码,使用cmake创建了Xcode模板并尝试构建,但它失败了,出现了大约200个错误。
先感谢您, Dom
解决方案请看我的答案帖子。
如何在 OS X Lion (10.7.2)上使用MacPorts,并使用Xcode 4.2.1来获取并运行OpenCV 2.3.1的详细指南
编辑 08/06/2012: 这也适用于OpenCV 2.4.1。只需确保您已获得最新版本的Xcode并安装了“命令行工具”(Xcode -> 首选项-> 下载-> 命令行工具)。
编辑 15/08/2012: 测试了Mountain Lion和当前版本的Xcode和OpenCV的所有内容...它可行 :) 您不必使用LLVM编译器。
编辑 16/10/204: 在过去的一年中,我放弃了MacPorts并开始使用brew,这对我的目的更有效。
1.) 获取当前版本的Brew 这里。
2.) 确保已准备好使用brew。
brew doctor && brew update
3.) 安装OpenCV(截至2014年17/20版本为v2.4.9)
brew install opencv
4.) 打开 Xcode (截至 2014 年 17/20 月 v6.0.1),打开或创建项目。
5.) 选择目标,进入“通用”选项卡,单击“链接的框架和库”的“+”按钮。
5.1.) 单击“添加其他”,输入“/”,前往“/usr/local/lib”并添加所需的任何libopencv_**.dylib
6.) 现在,在“构建设置”(仍然选择目标)下将“/usr/local/include”添加到“头文件搜索路径”中
7.) 最后,请确保在您的.mm文件中包含OpenCV。
1.) 在此处获取 MacPorts 的最新版本 here。不要忘记将“/opt/local/(s)bin”添加到您的环境PATH
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
2.) 让你的 MacPorts 保持最新:
sudo port -v selfupdate
3.) 安装OpenCV 2.3.1(使用llvm-gcc进行构建)
sudo port install opencv configure.compiler=llvm-gcc-4.2
4.) 打开Xcode并创建你的项目
5.) 选择你的目标,在“摘要”中点击“+”按钮,进入“链接的框架和库”
5.1.) 点击“添加其他”,输入“/”,前往“/opt/local/lib”
5.2.) 添加需要的任何“libopencv_ **.dylib”文件
6.) 现在在“构建设置”(仍然选择目标)下将“/opt/local/include/”添加到“头文件搜索路径”中
7.) 最后,请确保以下代码行位于.pch文件的开头:
#ifdef __cplusplus
#import "opencv2/opencv.hpp"
#endif
否则,您将会得到一些像这样的令人讨厌的错误:
Otherwise you'll get some nasty erros like this:
"Non-const static data member must be initialized out of line"
"Statement expression not allowed at file scope"
就是这样!希望能有所帮助 :)
如果没有安装,请安装Macports并将其添加到路径中。(我已经安装了它)
使用Macports从命令行更新自身 $ sudo port -v selfupdate
使用Macports从命令行安装opencv及其依赖项。 $ sudo port install opencv
如果未安装,请安装xCode。(我已经安装了它)
使用xCode创建一个C++命令行项目。
使用xCode在IDE中运行它创建的简单的hello world C++程序来验证它是否正常工作。
修改由xCode创建的main.cpp文件,从hello world示例变为Vachidrewer提供的简单的opencv示例。
注意到xCode编辑器报告找不到opencv头文件。
将/opt/local/include/添加到项目搜索路径中,并注意到编辑器错误消失。
尝试在xCode IDE中运行程序,注意到它报告找不到opencv库。
添加名为opencvfrqmework的组,并将/opt/local/lib/libopencv_core.dylib和/opt/local/lib/livopencv_highgui.dylib添加到该组中。
使用xCode IDE运行项目,注意到一个窗口弹出,其中一半较暗。
你尝试过使用标准的UNIX Makefiles构建它吗?
按照这个指南,看看是否有帮助。如果你已经下载了源代码,那么你可能不需要执行建议的svn checkout操作。你可以从第2节的使用CMake进行构建开始。
希望能有所帮助。
对于下面@moosgummi答案的小修改,Xcode 4.6在Mac OSX 10.7上可以使用。以下是测试代码。
安装OpenCV:
获取当前版本的MacPortshere。
不要忘记将“/opt/local/(s)bin”添加到您的环境路径中。
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
保持你的MacPorts最新:
sudo port -v selfupdate
sudo port install opencv
配置 Xcode 以使用 OpenCV
使用命令行工具/标准工具模板创建一个新的XCode项目。为其命名并选择C++。
选择“项目”->“编辑项目设置”。选择“构建”选项卡。将配置设置为所有配置。
在架构部分,双击“有效架构”,如果有任何PPC架构,请删除它们。
C/C++/Objective-C编译器 > Apple LLVM编译器4.2 语言” > “C++标准库”,并选择“libstdc++ (GNU C++标准库)”
在搜索路径部分,将头文件搜索路径设置为/opt/local/include/
添加该搜索路径时,请选择非递归选项。
关闭项目信息窗口。
选择“项目”->“新建组”,创建一个名为OpenCV Frameworks的组。 在新组中选择“项目”->“向‘您的项目名称’添加文件”。
按“/”键以获取转到文件夹提示。输入/opt/local/lib 选择libopencv_core.dylib、libopencv_highgui.dylib (您可能需要添加其他库文件来运行其他代码)。
取消复制项目…并单击添加。
测试代码
将此代码复制到您的main.cpp文件中。它应该打开一个半阴影的小窗口。
#include <iostream>
#include <opencv2/opencv.hpp>
int main(int argc, char *argv[])
{
// Open the file.
IplImage *img = cvCreateImage( cvSize(100,200), IPL_DEPTH_8U, 3); //if (!img) {
// printf("Error: Couldn't open the image file.\n");
// return 1;
//}
// Display the image.
cvNamedWindow("Image:", CV_WINDOW_AUTOSIZE);
cvShowImage("Image:", img);
// Wait for the user to press a key in the GUI window.
cvWaitKey(0);
// Free the resources.
cvDestroyWindow("Image:");
cvReleaseImage(&img);
return 0;
}
在遇到了很多错误(如分段错误等)之后,我终于让它正常工作了。以下是教程:
http://www.guidefreitas.com/installing-opencv-2-4-2-on-mac-osx-mountain-lion-with-python-support