欢迎大家来到IT世界,在知识的湖畔探索吧!
一、前言
大家好,我是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工具:
欢迎大家来到IT世界,在知识的湖畔探索吧!
官网下载链接:
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; }
欢迎大家来到IT世界,在知识的湖畔探索吧!
2、准备一个CMakeLists.txt:
欢迎大家来到IT世界,在知识的湖畔探索吧!# 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 配置文件中添加如下命令:
欢迎大家来到IT世界,在知识的湖畔探索吧!set(CMAKE_SUPPRESS_REGENERATION FALSE)
ZERO_CHECK 目标将不会生成。
ALL_BUILD:
该目标会导致工程中所有项目被构建,类似 Visual Studio 的 Build All 或者 make 的 make all命令。
以上就是以最简单的实例分享在Windows下使用CMake工具快速生成vs工程的实操。在实际工程中,当然不止hello.c这么一个源文件,会有多个文件夹及多层文件夹及更多的源码,但操作步骤都是这样的。工程结构复杂,则对CMakeLists.txt 的编写要求也越高。
五、资源下载
CMake工具安装文件私信回复关键词:CMake安装,我会第一时间发给你。
ZhengN的嵌入式资料汇总贴:
https://gitee.com/zhengnianli/EmbedSummary
猜你喜欢:
长文 | 花了两天时间整理了STM32中的一些C语言知识点
LittlevGL在STM32上的移植使用
1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。私信回复1024,即可免费获取!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/135263.html