第一种方法:Command Line(使用命令行参数的方法)
gcc Test.c -o Test `pkg-config --cflags --libs opencv` ./Test baboon.jpg
在上面的编译命令中我们其实用到了一个工具“pkg-config”,它主要有以下几个功能:
- 检查库的版本号。如果所需要的库的版本不满足要求,它会打印出错误信息,避免链接错误版本的库文件。
- 获得编译预处理参数,如宏定义,头文件的位置。
- 获得链接参数,如库及依赖的其它库的位置,文件名及其它一些连接参数。
- 自动加入所依赖的其它库的设置
所有有了这个工具之后我们的编译就很方便了(不过在此之前你要确保你安装的OpenCV的安装链接库文件的目录下有一个pkgconfig文件夹,在该文件夹里面有个opencv.pc的文件,其实这就是pkg-config下OpenCV的配置文件)。
使用pkg-config时,选项--cflags 它是用来指定程序在编译时所需要头文件所在的目录,选项 --libs则是指定程序在链接时所需要的动态链接库的目录。例如我下面这张图就显示了我电脑上OpenCV的相关目录。
第二种方法:使用OpenCV推荐的CMake工具
step1:新建一个目录用于存放我们的代码和程序中要处理的相关图片
step2:添加cmake工具编译时所需的文件CMakeLists.txt
CMakeLists.txt文件中的具体内容如***:这个文件你可以到你的OpenCV源代码解压出来的文件夹下的/samples/c/example_cmake/文件夹下拷过来,然后再做修改)。
下面我就简要的介绍下这里面内容的大概意思吧
然后我们就将终端的工作目录切换到我们建立工程文件的这个目录
(注意,千万要注意:你这时一定要查看你安装OpenCV时建立的那个编译文件,有没有带锁的标志(即你编译OpenCV是用root权限编译的),就这点就把我坑惨了,例如的我电脑上显示的就是这样的
看到上面图片中的build文件夹没,那就是我编译OpenCV源代码时建立的文件夹。)
所以,如果你是以root的权限编译的OpenCV此时你就要以切换到root用户,再切换到当前的工作目录。如果不是用root权限编译的OpenCV编译的话,你就直接切换目录就OK了。
我的电脑是要切换到root状态的
Step3:让后我们输入命令"cmake ."对当前的工程进行编译。啊哦,这时你就会发现你编译时出现了一个Bug
这个警告的大概意思就是:Cmake找不到OpenCV的链接库文件,你需要手动地设置OpenCV_DIR来指向包含库文件的路径。
好吧,这是最蛋疼的地方,就这个问题我google和上*都没有找到答案,只能自己尝试了,不过还是找到网友给的一些提示。
其实通过它给我们的提示我们就是要设置好这个路径。接下来我们通过camke的qt界面进行设置吧。
Step4:设置OpenCV_DIR
(1)先安装cmake的qt界面 "sudo apt-get install cmake-gui"
(2)打开cmake-gui界面
(3)我们这是就在Where is the source code 和 where to build binaries 的选项里选择我们的目录刚才建立包含我们程序的文件路径吧。
(4)我们选择cmake界面中的“Add Entry”选项,按照我下面图中的方式输入信息吧,其中alue值就是我OpenCV安装的那个目录(回想下我上面说的)。
这样我们就点击ok吧,得到下面的图了
到此OpenCV_DIR就配置完成了,单击下面的Configure和Generate,如果没报错则一切搞定啦。我们可以愉快的回到终端编译我们的程序啦。
(5)编译的方式如图所示
看到了吗,绿色OpenCV_Example就是我们刚生成的可执行文件,到此大功告成啊。
Step5:运行测试吧
转载地址:http://www.cnblogs.com/woshijpf/