看板 C_and_CPP 關於我們 聯絡資訊
=================== 電腦排版 手機使用者閱讀小心傷眼 =================== =================== 前言 =================== 剛剛有人說cmake的問題 小弟剛好前鎮子也有碰到過 所以整理一些心得xd 有錯還麻煩這邊的高手指正 這邊提供兩種方式 以下都是在windows下討論 Linux就像大家想的那樣 =================== cmake使用說明 =================== ---------------------------------------- 0. 建立專案目錄結構 ---------------------------------------- 目錄結構大概會像 : projectdir - src - A - a.h - a.c - CMakeList.txt - B - b.h - b.c - CMakeList.txt - CMakeList.txt - build - debug ...etc. - release ...etc. 這是官方建議的結構 建議讀者先創立資料夾目錄 再開始coding 結構類似這樣 ---------------------------------------- 方法1. mingw + cmake ---------------------------------------- 1-1. 需要安裝的程式: (1) camke (2) mingw32或mingw64 (3) 確認 cmake mingw的bin資料夾有在環境變數path裡面 (通常要自行設定) 1-2. 使用方式 (0) cd projectdir/build/debug 先到建置的路徑 build/debug build/release都可以 (1) cmake ../../src -G "MinGW Makefiles" 使用Windows的CMD不會有問題 用git-bash記得要先把git-bash的bin路徑加入path環境變數 否則會有問題 如果照上面設定第一次執行有問題(找不到sh.exe) 通常執行第二次就OK了XD 再不然就換回windows-CMD去執行指令吧 最後記得大小寫別打錯! 之前build opencv失敗過 可參考 https://tinyurl.com/ybl7lw78 cmake指令加上-DBUILD_TESTS=OFF選項 (2) mingw32-make (3) 執行程式測試 ---------------------------------------- 方法2. M$VC + cmake ---------------------------------------- 2-1. 需要安裝的程式: (1) camke (2) visual studio 2017 + MSBuild-15 (現在直接抓最新板是這個版本) (3) 確認 cmake MSBuild-15 VS2017-msvc的bin資料夾有在環境變數path裡面 (通常要自行設定) 2-2. 使用方式 (0) cd projectdir/build/debug 先到建置的路徑 build/debug build/release 都可以 (1) cmake ../../src -G "Visual Studio 15 2017 Win64" 15是MSBuild的版本 2017是visual studio的版本 Win64是64位元,若去除,則會建立32位元版本 注意大小寫別打錯 (2) MSBuild.exe XX.sln .sln相信很多用過visual studio的人都知道他是專案檔 cmake會建置出visual studio的專案檔 只要MSBuild XX.sln(XX是你的專案名稱)即可完成建置 (3) 執行程式測試 =================== 結論 =================== 雖說在win上兩個方式都可以 不過我還是建議方法2 尤其有再做cross-platform的人更建議2了 有些lib比方說opencv opencl cuda 在windows上都有prebuild的版本 prebuild版本都是用MSVC去編譯的 所以只能選擇方法2 當然如果想要挑戰一下 方法1也不是說不行 我之前用mingw64 Build opncv失敗 (2018.9.27無聊亂玩重新編譯就過了 詳見更新處) 就沒在試過方法1就是了qq =================== 參考資料 =================== wiki book for cmake : https://tinyurl.com/ycv5hafh cmake-generators(7) : https://tinyurl.com/ldff4vs -- 我老婆-子瑜,不服出來灣阿 https://imgur.com/sCghzuF https://imgur.com/JvAE0Qu https://imgur.com/k9PCODr https://imgur.com/CZmFmeq https://imgur.com/S7FgYgF -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.105.133.190 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1537865034.A.AC9.html ※ 編輯: dzwei (120.105.133.190), 09/25/2018 17:04:19
bigbite: 教學文先推 09/25 17:43
alan23273850: 快m起來 09/25 18:12
實際上寫起來還是要點進去我給的reference先看一下 那些只是最基本 可以用在大學/碩士的作業/論文 實務上要把cmake寫的好 其實有不少技巧(很多我還不知道qq) 其實還有一個qt的qmake可以用 我也很推這個 不過導出dll的時候就要注意一些事情 ※ 編輯: dzwei (120.105.133.190), 09/25/2018 18:25:54
eye5002003: 我會建議使用cmake-gui,切換option會比較方便 09/25 18:36
eye5002003: build資料夾不用固定放在專案資料夾裡面,這樣比較靈活 09/25 18:37
我覺得一開始使用cmake gui 其實蠻痛苦的QQ
eye5002003: 可以(debug/release)X(shared/static)各自建立一個 09/25 18:38
eye5002003: MinGW不會強制建立debug資料夾,VS才會(可以叫它住手) 09/25 18:41
你說的應該是設定bin output吧~ ※ 編輯: dzwei (120.105.133.190), 09/25/2018 18:44:19
eye5002003: VS不是會在bin output位置建立debug資料夾嗎?可以要求 09/25 19:15
eye5002003: VS別這麼做,設定RUNTIME_OUTPUT_DIRECTORY_DEBUG便可 09/25 19:16
OK 我了解了 ※ 編輯: dzwei (36.234.251.15), 09/27/2018 02:01:29
Ryspon: 前幾個月剛試過 (1) 是用 cmake-gui build 給 VS code 用 09/28 03:36