CMakelists生成VS工程

这篇博客介绍了如何通过命令行使用CMake构建项目。首先创建一个总目录,然后将包含CMakelists.txt的源码放入。接着创建build目录,并在命令行中进入该目录,执行cmake命令指定编译器。完成后,会在build目录下生成sln文件,使用VS打开编译即可。

可通过GUI和命令行两种方式,GUI方式也就是设置目录,设置编译器,生成,比较简单直观不讲了。下面说下命令行方式。


1 创建总目录如project


2 将包含CMakelists.txt文件的源码目录放在总目录中如mycode


3 创建build目录,结构如下:

--project

        --mycode

        --build


4 打开命令行,进入budil目录执行 cmake ..\mycode -G "Visual Studio 14 2015"
成功后会提示 Build files have been written to:....

5 进入build目录看到sln,打开用vs编译


 

### 生成适用于 Visual Studio 2019 的项目文件 为了通过 `CMakeLists.txt` 文件生成兼容 Visual Studio 2019 的项目文件,需要遵循以下方法: #### 使用 CMake 命令行工具 在命令提示符或终端中运行 CMake 并指定目标生成器为 Visual Studio 2019。可以通过 `-G` 参数选择特定版本的 Visual Studio 作为生成器。对于 Visual Studio 2019,通常使用的生成器名称为 `"Visual Studio 16 2019"`[^1]。 以下是具体操作流程: 1. 创建一个单独的构建目录(推荐),以便保持源码目录整洁。 ```bash mkdir build cd build ``` 2. 运行 CMake 配置并指定生成器为目标 IDE 版本: ```bash cmake -G "Visual Studio 16 2019" .. ``` 此处的 `..` 表示指向父级目录中的 `CMakeLists.txt` 文件位置。 3. 如果希望生成针对某个架构(如 x64)的解决方案,则可以在上述基础上增加参数 `-A` 来指定平台架构: ```bash cmake -G "Visual Studio 16 2019" -A x64 .. ``` 完成以上步骤后,在当前工作路径下将会生成 `.sln` 解决方案文件以及对应的项目文件,可以直接打开这些文件以继续开发调试过程[^2]。 #### 示例:完整的多模块项目结构与顶层 CMakeLists.txt 设置 假设存在一个多模块 C++ 项目如下所示: ``` MyProject/ ├── CMakeLists.txt # 顶层 CMakeLists.txt ├── module1/ # 模块1 │ ├── CMakeLists.txt # 模块1的 CMakeLists.txt │ ├── module1.cpp │ └── module1.h ├── module2/ # 模块2 │ ├── CMakeLists.txt # 模块2的 CMakeLists.txt │ ├── module2.cpp │ └── module2.h ├── app/ # 主程序 │ ├── CMakeLists.txt # 主程序的 CMakeLists.txt │ ├── main.cpp └── build/ # 构建目录 ``` **顶层 CMakeLists.txt** ```cmake cmake_minimum_required(VERSION 3.15) # 确保最低版本满足需求 project(MyProject LANGUAGES CXX) add_subdirectory(module1) add_subdirectory(module2) add_subdirectory(app) ``` 此配置允许分别处理各个子目录内的组件定义,并最终组合成整个应用程序的一部分[^3]。 #### 关于基本语法说明 CMake 提供了一种简洁的方式来表达复杂的编译逻辑。它利用关键字指令来控制行为模式,比如设置最小所需版本号 (`cmake_minimum_required`)、声明工程项目名及其所涉及的语言种类(`project`)等基础信息;再配合其他功能性的调用来实现更精细的操作,像引入外部库支持或者调整优化级别等等[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值