linux下opencv兩種編譯方法

2021-07-17 04:03:01 字數 1500 閱讀 2039

我的程式是在ubuntu下編譯的。主要有兩種方法編譯opencv程式,一種是用命令列引數編譯,另一種是通過cmake編譯。

command line編譯:

對於c檔案如檔名為test.c,編譯成可執行檔案test,輸入資料為imag.jpg:

對c++檔案,如檔名為test.cpp,用g++,其它與上面**一致:

上面的編譯命令用了「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到目標資料夾

則得到可執行檔案test:

最後執行:

Linux下兩種實用自動互動方法

在網上搜尋一大堆以後我總結到了2個linux互動的方法。第乙個方法 管道法 這個辦法不是所有的地方都有用,但是呢他非常的簡單方便,不需要裝第三方軟體的支援,在一些命令比如passwd上就非常有用了。如下 bin bash echo curpassword sleep 1 echo newpasswo...

Linux下 磁碟擴容的兩種方式

hadoop儲存容量或計算能力不能滿足日益增長的需求時,就需要擴容。擴容有兩個方案 1 增加磁碟 2 增加節點 將虛擬的linux關閉,擴大磁碟容量 將空間增大20g 增加空間後linux並不會識別出新增加的磁碟空間 需要為這塊新增的空間建立分割槽 新建分割槽 開啟linux fdisk dev s...

hover在兩種情況下的兩種用法

hover在滑鼠移到鏈結上時新增的特殊樣式。注意 為了產生預期的效果,在 css 定義中,hover 必須位於 link 和 visited 之後!前兩天遇到乙個關於 hover的問題,困惑了好久 這裡我們舉個例子看一下 hover在兩種情況下的兩種用法 先說一下,下面的 想實現的效果 當滑鼠放在 ...