為什麼這篇MSBuild 環境變數鄉民發文收入到精華區:因為在MSBuild 環境變數這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者dzwei (e^(i*pi)+1=0)看板C_and_CPP標題Re: [問題] VScode...
===================
電腦排版
手機使用者閱讀小心傷眼
===================
===================
前言
===================
剛剛有人說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
實際上寫起來還是要點進去我給的reference先看一下
那些只是最基本 可以用在大學/碩士的作業/論文
實務上要把cmake寫的好 其實有不少技巧(很多我還不知道qq)
其實還有一個qt的qmake可以用
我也很推這個
不過導出dll的時候就要注意一些事情
※ 編輯: dzwei (120.105.133.190), 09/25/2018 18:25:54
我覺得一開始使用cmake gui 其實蠻痛苦的QQ
你說的應該是設定bin output吧~
※ 編輯: dzwei (120.105.133.190), 09/25/2018 18:44:19
OK 我了解了
※ 編輯: dzwei (36.234.251.15), 09/27/2018 02:01:29