一點補充,關於PKG-CONFIG的使用
pkg-config本身是一個linux下的命令,其功能是用於獲得某一個庫/模塊的所有編譯相關的信息。
本篇blog將教大家在windows上面配置pkg-config,使其自動搜索opencv頭文件和庫文件目錄,並且傳給g++進行鏈接。以后鏈接就不需要總是輸入目錄進行鏈接了。
首先,我們去下載windows下的pkg-config。
鏈接: https://pan.baidu.com/s/1Y47Bb4imHyYRNEeO1frTXA 提取碼: m854
將下載的PKG-CONFIG解壓,解壓的bin與MinGW-w64里的的bin目錄合並。將libglib-2.0-0.dll復制到 MinGW-w64里bin目錄下。
完成這步后進入cmd/Powershell,輸入pkg-config,如果出現一長串英文代表環境變量配置正確,英文的大概意思是沒有在PKG_CONFIG_PATH中讀取到配置文件,需要我們設置環境變量。所以我們下一步要做的是編寫配置文件。如果出現'pkg-config'不是內部或外部命令,也不是可運行的程序或批處理文件。就請檢查環境變量里的PATH設置是否正確了。
打開Visual Studio Code,新建一個文件opencv.pc,內容請根據自己的目錄進行更改。
opencv.pc
# Package Information for pkg-config prefix=E:/Opencv345 exec_prefix=${prefix} libdir=${exec_prefix}/x64/mingw/lib includedir_old=${prefix}/include/opencv includedir_new=${prefix}/include Name: OpenCV Description: Open Source Computer Vision Library Version: 3.4.5 Libs: -L${exec_prefix}/x64/mingw/lib -lopencv_world Libs.private: -ldl -lm -lpthread -lrt Cflags: -I${includedir_old} -I${includedir_new}
說明:
prefix:在=后面加上opencv的安裝目錄。Version:請根據個人的版本進行更改。
保存opencv.pc至MinGW-w64的bin目錄下,打開環境變量設置,在系統環境變量下點擊新建,在變量名處輸入PKG_CONFIG_PATH,在變量值處輸入MinGW-w64下的bin目錄路徑。
重新打開終端,輸入pkg-config --cflags --libs opencv,如果正確輸出了opencv的頭文件和庫文件以及附加鏈接庫則設置正確,如下圖:
我們可以使用之前的main.cpp做個測試。
進入終端,輸入g++ main.cpp -o main `pkg-config --cflags --libs opencv`,注意是數字1旁邊的那個`。但是這兒說下博主在cmd/powershell下面輸入這條命令失敗了。
主要是:
cmd/powershell不識別這個 ,哭了。 於是博主換了Cygwin,在cmd輸入```bash```進入了Shell,再次輸入這個命令編譯成功。PS:Cygwin/Msys2網上配置教程一大堆,沒有Linux基礎的可以考慮Cygwin,有Linux基礎的應該考慮使用Msys2,直接使用pacman`進行軟件包管理。
為了解決平台的問題,更推薦在跨平台使用的時候使用CMake。參見下一篇CMAKE的補充
作者:Parker2019
鏈接:https://www.jianshu.com/p/d060030ef2a2
來源:簡書
