linux下opencv两种编译方法

     我的程序是在ubuntu下编译的。主要有两种方法编译opencv程序,一种是用命令行参数编译,另一种是通过cmake编译


Command Line编译:

对于c文件如文件名为test.c,编译成可执行文件Test,输入数据为imag.jpg:

gcc  test.c -o Test `pkg-config --cflags --libs opencv`

./Test imag.jpg

对c++文件,如文件名为test.cpp,用g++,其它与上面代码一致:

g++  test.cpp -o Test `pkg-config --cflags --libs opencv`

./Test imag.jpg


上面的编译命令用了“pkg-config”命令,主要功能是:

  1. 检查库的版本号。如果所需要的库的版本不满足要求,它会打印出错误信息,避免链接错误版本的库文件。
  2. 获得编译预处理参数,如宏定义,头文件的位置。
  3. 获得链接参数,如库及依赖的其它库的位置,文件名及其它一些连接参数。
  4. 自动加入所依赖的其它库的设置
选项--cflags用来指定程序编译时所需要的头文件所在目录,--lib指定程序所需要的动态链接库目录,如下图:


注意:

1、如果你的程序中有c++11标准格式的程序,需要在g++后面加上-std=c++11,如:

g++  -std=c++11 test.cpp -o Test `pkg-config --cflags --libs opencv`

2、上述代码中,包含pkg-config命令的不是右下角的单引号,而是键盘左上角,1键旁边的单引号。


第二种方法:CMake工具编译

1、先新建一个目录来存放我们要处理的程序和图片,再新建一个CMakeLists.txt文件。

2、编写CmakeLists.txt

对于不包含c++11标准的程序,直接安装下图写就好了:

其中Test是你想要生成的可执行文件名,1.cpp是文件名。

对于含有c++11标准的文件,需要添加c++11标准包含声明:

3、编译

cd到目标文件夹

cmake .

make


则得到可执行文件Test:

最后运行:

./Test orange.jpg





展开阅读全文

没有更多推荐了,返回首页