实用 | 使用Cmake快速生成visual studio工程
一、前言
大家好,我是ZhengN。
最近工作中需要把项目嵌入式Linux平台代码移到Windows上做仿真模拟,需要解决三个问题:
搭建工程。 替换掉一些平台相关的代码。 一些动态库的准备。
本篇笔记分享搭建工程的实操:
二、简介
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。
在Linux下,我们使用CMake工具来管理我们的工程的。而转到Windows下,我们需要搭建工程,如搭建基于Visual Studio的工程。
注意:Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。
这里我们使用的是Visual Studio,对于我们的工程来说,模块比较多,源码比较多,挨个文件添加到vs工程里比较慢,我们选用使用CMake来快速生成我们的vs工程。
三、CMake安装
首先需要下载、安装Windows版本的CMake工具:
官网下载链接:
https://cmake.org/download/
官网下载较慢,可以在本公众号后台回复关键词:CMake安装
,即可获取。
下面安装CMake3.18:
CMake安装很简单,需要注意的是Install Options
这一步要选择把CMake添加到系统环境变量中
:
Add CMake to system PATH for all users。
安装完成之后按Win+r
进入运行窗口,输入cmd
后按回车来到命令行,输入cmake -version
命令核实是否安装成功,出现如下界面说明已经安装成功:
四、使用CMake生成vs工程
进行一下操作之前当然要保证已经装好CMake工具
及Visual Studio
。
1、准备一个hello.c文件:
#include <stdio.h>
int main(void)
{
printf("hello world\n");
return 0;
}
2、准备一个CMakeLists.txt:
# CMake 最低版本号要求
cmake_minimum_required (VERSION 3.18)
# 项目信息
project (hello)
# 指定生成目标
add_executable(hello hello.c)
3、生成VS工程
进入命令行,输入命令转到hello.c及CMakeLists.txt所在目录:
cd /d xxx # xxx表示目录
然后输入Cmake .
即可生成vs工程:
hello.sln
就是生成的工程文件,双击打开即可进入vs:
解决方案管理器中除了hello工程之外,还有ALL_BUILD及ZERO_CHECK。这里默认选中ALL_BUILD,需要自己设置hello工程为启动项目
。
ZERO_CHECK:
该目标会检查生成工程的 CMake 配置文件( CMakeLists.txt )是否更新。如更新,将运行 CMake 重新生成工程文件。
如果确信 CMakeLists.txt 不会被更新,或者希望手工运行 CMake 重新生成工程文件,可以在 CMakeLists.txt 配置文件中添加如下命令:
set(CMAKE_SUPPRESS_REGENERATION FALSE)
ZERO_CHECK 目标将不会生成。
ALL_BUILD:
该目标会导致工程中所有项目被构建,类似 Visual Studio 的 Build All 或者 make 的 make all
命令。
以上就是以最简单的实例分享在Windows下使用CMake工具快速生成vs工程的实操。在实际工程中,当然不止hello.c这么一个源文件,会有多个文件夹及多层文件夹及更多的源码,但操作步骤都是这样的。
工程结构复杂,则对CMakeLists.txt 的编写要求也越高。关于CMake、CMakeLists.txt 的干货文章可见:分享一篇很不错的CMake入门文章,值得收藏细读!