我的程序是在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、如果你的程序中有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