在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 FilesMicrosoft Visual Studio 9
- 在cmder中输入
"E:Program FilesMicrosoft Visual Studio 9VCvcvarsall.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