在CMake入門實踐一文中,我們初略的介紹了CMake的跨平台性和使用方法。
本文將學習在Windows下如何系統的使用CMake,會涉及到msbuild ,nmake等Windows本地的工具庫,如果不是很了解,可以先百度看看。
cmake有Windows的GNU工具,這個工具很傻瓜化,這里不做介紹。
回顧代碼工程中有什么
- 源文件 如cpp 文件
- 頭文件 如h文件
- 我們自己的庫文件 ,lib 或者dll文件
- 三方庫,不過一般而言,我們使用庫文件的lib或者dll然后加上它的頭文件即可
- 資源文件
- 其他?
將需要的東西在cmake腳本CMakeLists.txt中申明
CMakeLists.txt的寫法規則及語法:
該文很全面了,我不再造輪子了
一鍵型編譯
CMakeLists.txt 文件寫好后,我們就可以開始編譯了,和之前的介紹的一樣,我們最好將編譯生成的文件全部放入一個中間文件夾中。
linux下的一鍵編譯是非常優美的,windows程序員因為被VS等IDE包養,並不是很願意使用黑壓壓的命令行工作,但是,我會告訴你,使用命令行工作已經是大勢所趨了。你不僅需要熟悉命令行工作,更應該擅長此道。
widows下也有自己的命令行編譯工具,比如msbuild,nmake等。這兩個工具是和VS一起升級維護的,所以對於像筆者這樣,一台機器安裝3個版本的VS的人,要使用正確版本的編譯工具其實需要走些彎
路。
使用nmake
以下是筆者希望使用VS2008的nmake需要完成的工作:
- 首先打開cmder
- 找到VS2008的安裝路徑,比如筆者的是E:\Program Files\Microsoft Visual Studio 9
- 在cmder中輸入
"E:\Program Files\Microsoft Visual Studio 9\VC\vcvarsall.bat" x86
(雙引號很重要,必須, x86表示我希望編譯32位程序) - 環境配置完成后,切換路徑到win-build(這是我自定義的代碼生成中間文件夾,外圍才是我的工程代碼)輸入
cmake .. -G "NMake Makefiles"
- 然后輸入
nmake
- 編譯無誤后生成了可執行程序
補充說明:
- 使用其他編譯環境同VS2008即可,找到該版本的VS的目錄,輸入命令配置nmake環境
- 該配置環境只在本次控制台有效,不會影響你的系統配置
使用msbuild
使用msbuild的步驟和nmake大同小異:
將上面第4步的cmake .. -G "NMake Makefiles"
換成 cmake .. -G "Visual Studio 9 2008"
將上面第5步的nmake
換成 MSBuild.exe Project.sln
這個Project.sln 換成你自己的工程名即可
實現一鍵編譯
可以把命令寫成bat腳本 ,做到真正的一鍵編譯。
echo off
echo 'start cmake in windows'
call "e:/Program Files/Microsoft Visual Studio 9/VC/vcvarsall.bat" x86
cd win-build
cmake .. -G "NMake Makefiles"
nmake
echo 'end all'
其他可以參考,將該bat文件放在和cmake腳本文件同路徑下,即可一鍵生成exe執行文件。
參考
https://blog.csdn.net/qq_22042587/article/details/78850708
https://blog.csdn.net/yaoyuanyylyy/article/details/79024962
http://www.360doc.com/content/14/1113/13/9075092_424804822.shtml
https://blog.csdn.net/gxuan/article/details/7701035
https://blog.csdn.net/yanchuang1/article/details/69683236