实用 | 使用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入门文章,值得收藏细读!

五、资源下载

(0)

相关推荐

  • Visual Studio对CMake工程ARM64的支持

    ARM64平台粉墨登场 在Visual Studio 2019 v16.9 Preview 3中,我们添加了对CMake工程部署到一台远程Windows系统的支持,另外开发者可以借助Visual St ...

  • 使用 cmake 来搭建跨平台的应用程序框架:C语言版本

    嵌入式专栏 149篇原创内容 公众号 来源 | IOT物联网小镇 本文为大家分一下使用 cmake 来搭建跨平台的应用程序框架. 一.前言 我们在写应用程序的过程中,经常需要面对一个开发场景:编写跨平 ...

  • Visual Studio新增对ARM64EC的支持

    ARM64EC("Emulation Compatible")是一种新的应用程序二进制接口(ABI),旨在用来在ARM平台为Windows 11编写应用程序.有了ARM64EC,你 ...

  • VS2019中的远程调试支持

    先来一个长句 Visual Studio 2019提供了面向Windows和Linux目标平台的MSBuild和CMake工程的远程调试功能. 因为有了这个功能,我们可以有机会实现下面列出来的几个工作 ...

  • 使用VS2022和WSL2开发和调试C++代码

    近日,VS2022为C++开发者新引入了原生WSL2工具集支持.这个工具集目前已在VS2022 v17.0 预览版2中可用. WSL2是用于Linux系统的Windows子系统 (WSL) 架构的新一 ...

  • Visual Studio C++模块快速入门

    是时候入门了 Visual Studio现在已经支持C++模块了.C++模块可以对代码进行合理的划分,加速工程构建过程并且可以和现有的代码进行无缝,并行地协调工作. 此次的预览版本仅支持在IDE中在基 ...

  • Visual Studio Code 1.56稳定版发布

    白开水 OSC开源社区 昨天 文 | 白开水 出品 | OSC开源社区(ID:oschina2013) Visual Studio Code 1.56 稳定版已发布,其中一些主要亮点内容如下: 改进的 ...

  • 掌握Snapseed的这5个实用技巧,快速提升你的手机修图效率

    掌握Snapseed的这5个实用技巧,快速提升你的手机修图效率

  • 菜鸟记207-两个小技巧:快速生成学期名称和复制公式文本

    关键词:EXCEL2016:连接符&:分列:操作难度*** 某天,小菜因为工作需要快速生成若干个学期名称,就像这样: 图 1:学期简称 怎么能快速生成这样的学期简称呢?小菜尝试用自动填充的方法 ...

  • 微软正式宣布 Visual Studio 2022

    首先,我们要感谢正在阅读这篇文章的你,我们所有的产品开发都始于你也止于你,无论你是在开发者社区上发帖,还是填写了调查问卷,还是向我们发送了反馈意见,或者参与了客户研究,感谢你帮助我们继续引导 Visu ...

  • 一种快速止痛和骨痂快速生成的药剂制作方法.pdf

    本发明涉及一种跌打损伤.冻结肩病人的快速止痛和骨折病人骨痂快速生成的药剂制作方法.     目前用于跌打损伤病人止痛.骨折病人促进骨痂生成的药物主要是西药,为止痛片或钙片.这些药物虽有一定疗效,但效果 ...

  • 制图小技巧丨巧用3D Map Generator快速生成地形神器

    又到了每周一的制图教室啦. 无论是建筑.规划还是景观专业,地形分析都会是我们经常用到的一类分析图.这类分析图的常规做法呢,就是先要获取地理数据,然后通过GIS.SU或者Rhino+GH生成场地模型,要 ...

  • 微软宣布Visual Studio 2022:10 篇热文汇总

    昨天 本文精选了DotNet 2021年04月份的10篇热门文章.其中有技术分享.技术资源. 注:以下文章,点击标题即可阅读 <微软正式宣布 Visual Studio 2022> 将会更 ...