Ubuntu下对opencv程序编译方式:cmake和sh脚本

sh脚本方式:

       1、在写完test.c 后,gedit 新建一个 build.sh 脚本,内容如下:

                      

#!/bin/sh
gcc `pkg-config –cflags opencv` -o test test.c `pkg-config –libs opencv`

注:命令中的“ ` ”是反引号,不是单引号;其一般位于Tab键正上方,数字键1的左边。在shell语言中,反引号具有解引用的作用,即命令输出代替命令本身。

使用pkg-config时,选项--cflags 它是用来指定程序在编译时所需要头文件所在的目录,选项 --libs则是指定程序在链接时所需要的动态链接库的目录。

           pkg-config 当你从源代码编译软件时,用来提供依赖库的信息的软件。pkg-config原本是设计用于Linux的,但现在在各个版本的BSD、                         windows、Mac OS X和Solaris上都有着可用的版本。
它输出已安装的库的各个信息,包括:
1)C或C++编译器需要的参数
2)链接器需要的参数
3)已安装软件包的版本信息  

                  2、  保存退出后,进行$chmod +x build.sh         //执行权限

                                             $./build.sh                       //编译成功


cmake方式:

          1、CMakeLists.txt文件中的具体内容如下(注:这个文件你可以到你的OpenCV源代码解压出来的文件夹下的/samples/c/example_cmake/文件夹下拷过来,然后再做修改)。

          2、

PROJECT(OpenCV_Example)           //这是建立一个工程项目(类似于我们VS中建立C++项目一样),括号里面时工程名,工程名我们可以任意给,最后程序编译出来的可执行文件就是这个名字
02.
03.
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)    //这是对CMake工具最低版本要求,这里我们要检查下我们的CMake工具的版本信息,我们可以使用命令“cmake --version”查看
04.
if(COMMAND cmake_policy)            
05.
cmake_policy(SET CMP0003 NEW)
06.
endif(COMMAND cmake_policy)
07.
 
08.
FIND_PACKAGE( OpenCV REQUIRED )   //这是cmake用来查找opencv包用的,不用改
09.
 
10.
# Declare the target (an executable)
11.
ADD_EXECUTABLE(OpenCV_Example  Image_show.c)      //这里括号里面的两个参数分别是工程项目名和我们要编译文件名的意思,记住中间一空格键隔开
12.
 
13.
TARGET_LINK_LIBRARIES(OpenCV_Example ${OpenCV_LIBS})  //这是我们链接到OpenCV库的环节,我们只要更改前面第一个参数位我们的工程项目名即可
14.
15.
#MESSAGE(STATUS 'OpenCV_LIBS: ${OpenCV_LIBS}')     //好了,就修改这么点东西,保存,关闭。
    然后我们就将终端的工作目录切换到我们建立工程文件的这个目录

(注意,千万要注意:你这时一定要查看你安装OpenCV时建立的那个编译文件,有没有带锁的标志(即你编译OpenCV是用root权限编译的),就这点就把我坑惨了,例如的我电脑上显示的就是这样的

       

          

 看到上面图片中的build文件夹没,那就是我编译OpenCV源代码时建立的文件夹。)

 所以,如果你是以root的权限编译的OpenCV此时你就要以切换到root用户(sudo -i 命令),再切换到当前的工作目录。如果不是用root权限编译的OpenCV编译的话,你就直接切换目录就OK了。

           然后让我们输入cmake命令 对当前的工程进行编译。啊哦,这时你就会发现你编译时出现了一个Bug



 这个警告的大概意思就是:Cmake找不到OpenCV的链接库文件,你需要手动地设置OpenCV_DIR来指向包含库文件的路径。

  好吧,这是最蛋疼的地方,就这个问题我google和上StackOverFlow都没有找到答案,只能自己尝试了,不过还是找到网友给的一些提示。

  其实通过它给我们的提示我们就是要设置好这个路径。接下来我们通过camke的qt界面进行设置吧。

               

   设置OpenCV_DIR

   (1)先安装cmake的qt界面 'sudo apt-get install cmake-gui'

   (2)打开cmake-gui界面 (cmake-gui 命令)

                 我们这是就在Where is the source code 和 where to build binaries 的选项里选择我们的目录刚才建立包含我们程序的文件路径吧。

                 我们选择cmake界面中的“Add Entry”选项,按照我下面图中的方式输入信息吧,其中value值就是我OpenCV安装的那个目录(回想下我上面说的)



 这样我们就点击ok吧,到此OpenCV_DIR就配置完成了,单击下面的Configure和Generate,如果没报错则一切搞定啦。我们可以愉快的回到终端编译我们的程序啦。

编译的方式如图所示


 看到了吗,绿色OpenCV_Example就是我们刚生成的可执行文件,到此大功告成啊。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值