在編譯OpenCV程序之前,先看一下普通的C++程序如何編譯,假設main.cpp有如下代碼,最終結果是打印hello world,
#include <iostream>
using namespace std;
int main(int argc, const char * argv[])
{
cout << "hello world" << endl;
return 0;
}
在命令行中只要輸入以下命令就可以看到輸出hello world,
g++ main.cpp -o main
./main
首先需要安裝pkg-config命令,具體方法參考教程。http://www.linuxidc.com/Linux/2016-09/135037.htm
安裝成功之後,在命令行輸入以下命令可以看到OpenCV相應的頭文件和動態庫文件的路徑,
pkg-config --cflags --libs opencv
一個OpenCV程序不光需要編譯程序本身,還需要將OpenCV相應的頭文件和動態庫文件一起編譯,假設main.cpp中的程序如下,
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, const char * argv[]) {
IplImage *img = cvLoadImage("the path of a image");
cvNamedWindow ("Source", 1);
cvShowImage ("Source", img);
cvWaitKey(0);
cvReleaseImage(&img);
return 0;
}
在命令行中輸入以下程序進行編譯並運行,注意包圍pkg-config部分的是`號不是單引號’,程序可以顯示自己指定的一張圖片,
g++ `pkg-config --cflags --libs opencv` main.cpp -o main
./main
如果覺得每次輸入以上編譯程序很麻煩,可以將其存儲到文件中,首先使用touch Makefile命令創建Makefile文件,裡面輸入如下內容,
all:
g++ `pkg-config --cflags --libs opencv` main.cpp -o main
這樣只要在命令行中輸入make即可。