Windows下使用CMake进阶

目录

  • 回顾代码工程中有什么
  • 将需要的东西在cmake脚本CMakeLists.txt中申明
  • 一键型编译
    • 使用nmake
    • 使用msbuild
    • 实现一键编译
  • 参考

CMake入门实践一文中,我们初略的介绍了CMake的跨平台性和使用方法。
本文将学习在Windows下如何系统的使用CMake,会涉及到msbuild ,nmake等Windows本地的工具库,如果不是很了解,可以先百度看看。
cmake有Windows的GNU工具,这个工具很傻瓜化,这里不做介绍。

回顾代码工程中有什么

  1. 源文件 如cpp 文件
  2. 头文件 如h文件
  3. 我们自己的库文件 ,lib 或者dll文件
  4. 三方库,不过一般而言,我们使用库文件的lib或者dll然后加上它的头文件即可
  5. 资源文件
  6. 其他?

将需要的东西在cmake脚本CMakeLists.txt中申明

CMakeLists.txt的写法规则及语法:
该文很全面了,我不再造轮子了

一键型编译

CMakeLists.txt 文件写好后,我们就可以开始编译了,和之前的介绍的一样,我们最好将编译生成的文件全部放入一个中间文件夹中。
linux下的一键编译是非常优美的,windows程序员因为被VS等IDE包养,并不是很愿意使用黑压压的命令行工作,但是,我会告诉你,使用命令行工作已经是大势所趋了。你不仅需要熟悉命令行工作,更应该擅长此道。
widows下也有自己的命令行编译工具,比如msbuild,nmake等。这两个工具是和VS一起升级维护的,所以对于像笔者这样,一台机器安装3个版本的VS的人,要使用正确版本的编译工具其实需要走些路。

使用nmake

以下是笔者希望使用VS2008的nmake需要完成的工作:

  1. 首先打开cmder
  2. 找到VS2008的安装路径,比如笔者的是E:\Program Files\Microsoft Visual Studio 9
  3. 在cmder中输入 "E:\Program Files\Microsoft Visual Studio 9\VC\vcvarsall.bat" x86(双引号很重要,必须, x86表示我希望编译32位程序)
  4. 环境配置完成后,切换路径到win-build(这是我自定义的代码生成中间文件夹,外围才是我的工程代码)输入cmake .. -G "NMake Makefiles"
  5. 然后输入nmake
  6. 编译无误后生成了可执行程序

补充说明:

  • 使用其他编译环境同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

https://www.cnblogs.com/cv-pr/p/6206921.html

https://blog.csdn.net/libaineu2004/article/details/78995740

原文地址:https://www.cnblogs.com/Stultz-Lee/p/10012366.html

时间: 2024-10-24 06:00:42

Windows下使用CMake进阶的相关文章

Windows下用cmake编译Caffe

Windows下用cmake编译Caffe 2018年8月24日 23:35:41 by ChrisZZ 环境说明 系统: Windows10 编译器:Visual Studio 2015 构建器:CMake 3.12 Caffe: BVLC官方Caffe的windows分支 CUDA: 9.2 CuDNN:7.0 终端: cmd窗口 具体步骤 1. 下载代码 进cmd敲: d: cd work git clone https://github.com/BVLC/caffe caffe-BVLC

windows下使用Cmake和VC 2013安装mongodb C driver

Windows下安装mongodb的C语言程序驱动必须借助交叉编译软件CMake,但是官网上的文档对于一些细节交代的非常不清楚,昨天弄了半天,总算成功安装了,步骤如下: 1.下载mongodb 将mongo-c-driver-1.1.4.zip源代码解压到d:根目录下(此目录路径可根据需要选定). 2.下载libbson库,https://github.com/mongodb/libbson/releases/download/1.1.6/libbson-1.1.6.tar.gz,将其解压.将解

windows下使用cmake编译zlib与libpng libjpeg

win7下使用VS2010编译jpeglib 1.下载源代码下载地址:http://www.ijg.org/files/,     选择最新版本的windows版本压缩包,进行下载.     jpegsr9a.zip    1042 Kb    Sun Jan 19 10:26:10 2014    Zip Compressed Data 2.解压缩压缩包,修改文件名jconfig.vc为jconfig.h 3.打开VS2010的命令行窗口     程序菜单         Microsoft

windows下使用cmake+mingw配置makefile

前面一节说了cmake简易使用,但是实际开发中项目文件非常多,使用哪种简易方式会导致代码十分混乱,因此本文介绍一种cmake管理大型项目的demo流程. 具体步骤如下: 1.创建相关的项目目录 [cpp] view plain copy cmd mkdir hello cd hello mkdir inlude lib src debug 其中inlucde用来存放头文件,lib用来存放库文件,src用来存放源程序,debug用来作调试,类似于qt等IDE环境的配置 [cpp] view pla

Windows下VTK6.0.0安装详解(CMake使用说明)

操作系统:Windows7,用到工具:Visual studio.CMake. 1.准备工作 VTK下载: 下载最新VTK稳定版(6.0.0,截至2013年7月)http://www.vtk.org/VTK/resources/software.html CMake下载和安装: 最新版的VTK不提供Windows下的installer ,需要自己构建(Build)和编译(Compile)源代码.这里用到一个小工具CMake,到官网下载并安装http://www.cmake.org/cmake/r

Windows环境下使用Cmake ndk编译fdk-aac

 一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,下面是x264,网上说的很多都是几百年前的,我亲测完美可用 还是那句话 我能力有限,但是我希望我写的东西能够让更多的人能够接受.我也是刚刚接触.做一个记录,也希望能够对其他人有好处.联系我可以直接评论,也可以加我QQ:11635423  二.干货  准备:1.fdk_aac的源码  git clone https://android.googlesource.com/platform/external/aa

【大话QT之十五】ctkPluginFrameWork插件系统Windows下编译

使用ctkPluginFramework作为插件系统框架的确有着众多开发上的优势.最近收到一些站内信,大家都想使用ctkPluginFramework但是不知道如何编译,这篇教程就来讲一讲ctkPluginFramework插件系统在Windows下的编译过程. 准备条件: 1. 安装Git,我们通过它来下载CTK的源码. 2. 安装CMake,我们用它来生成vs下的sln解决方案文件. 相关站点: 1. CTK的官网:http://www.commontk.org/index.php/Main

在Windows下使用MinGW静态编译Assimp

使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要讲解如何在Windows下使用MinGW静态编译Assimp. Assimp是目前比较全的3D格式解析库了,熟悉3D游戏开发的同行都知道,3D的格式非常混乱,各种3D格式在不同场合都有他们特定的应用,游戏引擎只能够解析少部分3D格式,更多实用的格式来自游戏公司自定义的格式.而在开源领域,Assimp算是比较全的3D格式导入库了.它对3D格式理解深入,很适合整合至3D图形引擎中,让你们

OpenGL开发环境配置-Windows/MinGW/Clion/CMake

因为某些原因,不想用过于臃肿的VS了,转而使用常用的jetbrains的CLion,Clion沿袭了jetbrans的优良传统,基本代码提示功能还是比较好的,不过就是对于windows不熟悉cmake(像我这样)的朋友可能不是太友好,经过了2个小时的查资料,终于正常运行了一个简单示例. 下面谈谈如何在Windows下配置这个开发环境. 起始,我是参考了我的前一篇OpenGL+VS开发环境的搭建,实际上除了freeglut重新下载的是MinGW版本之外,其他的文件并无区别,当然为了方便引用,我把所