2023年5月31日 星期三

cl command line

即使在 Windows 下,我還是習慣用 gcc 來編譯自己寫的 C 程式,如果是別人的專案,只要是寫得好的 project,用 gcc 理論上也不會有什麼大問題。

至於一些有名的專案,為了減少編譯問題,大部份都還是提供 VC 的編譯選項,確實 Windows 下用 VC 問題會比較少!

另外,有些專案也會附上 cmake 設定檔,只要電腦環境有安裝好其他的相依性函式庫,這種的問題也不大。

但如果是一些 github 上的小專案,又沒有提供編譯說明文件,這時就會有點小麻煩,理論上用 IDE 來設定應該會比較輕鬆?

但我是個不習慣使用 IDE 的人,還是來找一下 command line 編譯選項好了。

https://github.com/j30206868/StereoSGBMNote

以上面專案為例,此專案是實作 SGBM 匹配演算法的專案,可以幫助我們學習演算法,他本身有用到 OpenCV。

底下是編譯步驟:

01. 配合電腦的 VC  版本,找到 OpenCV 有提供預先編譯好的版本,以 VS2015 為例,可以下載 3.4.10 版本!

02. 將下載檔案解壓縮到某個資料夾,此處我是解壓縮到 E:\OpenCV_C。

03. 切換目錄到 StereoSGBMNote 專案路徑,在這裡新增一個 build.bat,內容如下。

@echo off

set path=%path%;E:\OpenCV_C\opencv\build\x64\vc14\bin

cl main.cpp stereoSGBM.cpp /Fe"test.exe" /I E:\OpenCV_C\opencv\build\include /link E:\OpenCV_C\opencv\build\x64\vc14\lib\opencv_world3410.lib

echo.
pause

set path 是為了執行的時候可以找到相關 DLL 檔。
/Fe 是指定執行檔名稱。
/I 是指定標頭檔路徑。
/link 是指定 link 的 library,預設是 Release。

有些原始碼會有其他字元集的註解,假設跟當前終端機預設不同會有警告,如果是 UTF-8 編碼字元,可以加上 /utf-8 消除編譯警告。

04. 配合批次檔內容,開啟對應的 VC prompt,以此例來說是 "VS2015 x64 Native Tools Command Prompt"。

05. 在開啟的 VS 視窗中,切換工作目錄到專案路徑,執行我們剛準備好的 build.bat 即可。

沒有留言:

張貼留言