查看原文
其他

实用 | 使用Cmake快速生成visual studio工程

ZhengNL 嵌入式大杂烩 2022-09-10

一、前言

大家好,我是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入门文章,值得收藏细读!

五、资源下载

CMake工具安装文件可在本公众号后台回复关键词:CMake安装,即可获取。

六、温馨提示

由于微信公众号近期改变了推送规则,如果您想经常看到我们的文章,可以在每次阅读后,在页面下方点一个「赞」或「在看」,这样每次推送的文章才会第一时间出现在您的订阅列表里。

猜你喜欢:

分享一些可以快速入门的嵌入式相关教程

实用 | 一个高性能通信库的简单使用分享

在公众号聊天界面回复1024,可获取嵌入式资源;回复 ,可查看文章汇总。

文章都看完了不点个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存