20221121window_cmake

Nov 20, 2022

使用windows开发gcc

使用windows开发gcc重要在于系统很方便,这里记录以备之后要用windows开发gcc,能快速还原当时的配置。

使用mingw64开发

配置环境变量: 此电脑 - 属性 - 高级系统设置 - 环境变量 - Path(编辑) - 增加mingw64的bin目录位置(我这里是D:\msys64\mingw64\bin)

安装cmake

正常安装cmake,同样环境变量增加cmake的bin目录(我这里是C:\Program Files\CMake\bin)

使用cmake

由于使用的是mingw64,所以不能直接调用cmake,而应该使用语句: cmake -G "MinGW Makefiles" .

并且windows某些原因无法在vscode的Tasks中编辑cmake详细参数,所以这个命令我使用手敲的。这也就是说,文件不增加的情况下,直接F5执行make;如果代码文件有修改,则cmake需要先手动执行一遍上面的语句来修改Makefile。

cmake 目前就是这种方法操作,有更好的方法可以联系交流。

配置F5断点调试

目录:

1
2
3
4
5
/.vscode/launch.json
/.vscode/tasks.json
/CMakeLists.txt
/main.c
/.gitignore
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "lldb", // vscode插件需要下载对应的插件
"request": "launch",
"program": "${workspaceFolder}/clispy.exe", // program启动声明需要调用的exe文件
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "lldb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "make" // 断点启动前执行的任务,对应tasks的label。
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
tasks.json
{
"version": "2.0.0",
"options": {
"cwd": "${workspaceFolder}"
},
"tasks": [
{
"label": "cmake", // 单任务,为launch.json 的preLaunchTask做调用
"command": "cmake",
"args": [
"-G",
"'MinGW Makefiles'",
"."
]
},
{
"label": "make", // 单任务,为launch.json 的preLaunchTask做调用
"command": "make"
},
{
"label": "CMake Build", // 多任务,为launch.json 的preLaunchTask做调用
"dependsOn":["cmake", "make"]
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

# 声明编译工具目录
set (CMAKE_C_COMPILER "d:/msys64/mingw64/bin/gcc.exe")
set (CMAKE_CXX_COMPILER "d:/msys64/mingw64/bin/g++.exe")
project(clispy)

set(CMAKE_BUILD_TYPE DEBUG)
set(clispy_VERSION_MAJOR 1)
set(clispy_VERSION_MINOR 0)
set(SRC_LIST mpc.c main.c )

add_executable(clispy ${SRC_LIST})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.gitignore

game
*.DSYM
CMakeFiles
cmake_install.cmake
CMakeCache.txt
Learngl
.vscode/settings.json
.vscode/launch.json
.vscode/tasks.json
!.vscode/
*.out
Makefile
*.exe

剩下就是执行cmake -G "MinGW Makefiles" . 然后按F5执行了。