CMAKE 的 Linux and Windows编译C++ CXX配置. CMAKE 安装, VS Code Cmake Tools插件
0、简述
以VS Code 为IDE ,同时适配 Linux和 Windows的gcc编译
- 安装vscode
- 安装 gcc
- 配置cmakelist.txt
1, 安装
inux系统
gcc g++, cmake, vscode
都参考: Linux C++安装学习笔记
Windows
gcc g++, cmake, vscode
参考: 在csdn里搜索即可
2, CMake tools 插件配置
在vs code应用市场安装 cmake tools
2.1 配置build目录
build是工程cmake编译的中间文件目录,最好不同用户,不同项目 在不同目录下.
在vscode 的插件 cmake tools 里,点插件配置, 找到: build Directory
- 默认:
${workspaceFolder}/build
这个不利于代码归档,拷贝,建议配置到项目目录外面。 - 上一级目录:
${workspaceFolder}/../build
配置为 项目目录上一级,这个最简单粗暴。 - Linux系统
设定为:data/home/kevin/build/linux/${workspaceRootFolderName}
例如: 源码根目录名为ktcore.wsp, 你的用户名是kevin,则:
buildDirectory为:data/home/kevin/build/linux/ktcore.wsp
- Windows系统
设定为:E:/build/windows/${workspaceRootFolderName}
3, CMakeLists.txt 配置
3.1 区分Linux还是Windows
在CMakeLists.txt 里,利用宏 WIN32来区分
IF (WIN32) # windows
# your code
ELSE () # linux
# your code
ENDIF ()
3.1 配置exe 和lib 输出目录
在项目的根目录的CMakeLists.txt 里,设定exe和lib目录。
变量 | 含义 | 测试 |
---|---|---|
CMAKE_BINARY_DIR | cmake binary dir | 没有搞清楚如何用, 应该用2.1 的方法设定 |
LIBRARY_OUTPUT_PATH | lib 输出目录 | OK |
EXECUTABLE_OUTPUT_PATH | exe 输出目录 | OK |
我是把lib 和exe输出到一个目录了 |
IF (WIN32) # windows
set (CMAKE_BINARY_DIR E:/root/Debug/build/Windows/win_b64)
set (LIBRARY_OUTPUT_PATH E:/root/Debug/Windows/win_b64)
ELSE () # linux
set (CMAKE_BINARY_DIR ${PROJECT_SOURCE_DIR}/../bin)
set (LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}")
ENDIF ()
set (EXECUTABLE_OUTPUT_PATH "${LIBRARY_OUTPUT_PATH}")
3.2 配置lib 输入目录
3, VS Code
vs code 里面的宏定义说明
宏定义 | 说明 |
---|---|
${workspaceFolder} | 表示当前vs code根目录路径. |
${workspaceRootFolderName} | 表示当前vs code根目录名. |
编译定制
可以只编译一个测试:
- 火箭🚀在哪里,应该只运行哪个
- 这个锤子🔨在某个项目上,编译就只编译这个
- 运行
如果有单元测试:
在TESTING模块里面可以选择全运行或者只运行某个测试。
-
CMakeLists里面运行
这里可以逐个运行测试
-
底部工具条控制:
这个在icon模式时没有出来,compact可以