1.软件准备
准备如下软件:
mingw64(安装完成之后检测是否有环境变量,如果没有需要配置)
cmake(安装完成之后检测是否有环境变量,如果没有需要配置)
vscode(安装CMake插件)
2.创建项目
创建一个test目录作为项目的根目录,并在test目录中创建一个CMakeLists.txt文件,文件内容如下:
cmake_minimum_required(VERSION 3.14)
project(test)
set(CMAKE_CXX_STANDARD 14)
#设置程序生成的DEBUGrelase目录
set(PROGRAM_PATH_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}build/debug)
set(PROGRAM_PATH_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}build/release)
# 引入子目录
ADD_SUBDIRECTORY(main)
然后再创建一个main目录,在main目录中创建一个CMakeLists.txt文件,内容如下:
set_target_properties(${TARGET_NAME} PROPERTIES DEBUG_POSTFIX "_d")
#设置可执行程序的输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../build/debug)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../build/release)
file(GLOB main_src ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
ADD_EXECUTABLE(main ${main_src})
IF (CMAKE_BUILD_TYPE MATCHES "Debug"
OR CMAKE_BUILD_TYPE MATCHES "None")
MESSAGE(STATUS "CMAKE_BUILD_TYPE is Debug")
set_target_properties(main PROPERTIES OUTPUT_NAME "main_debug")
ELSEIF (CMAKE_BUILD_TYPE MATCHES "Release")
MESSAGE(STATUS "CMAKE_BUILD_TYPE is Release")
set_target_properties(main PROPERTIES OUTPUT_NAME "main_release")
ELSEIF (CMAKE_BUILD_TYPE MATCHES "RelWitchDebInfo")
MESSAGE(STATUS "CMAKE_BUILD_TYPE is RelWitchDebInfo")
ELSEIF (CMAKE_BUILD_TYPE MATCHES "MinSizeRel")
MESSAGE(STATUS "CMAKE_BUILD_TYPE is MinSizeRel")
ELSE ()
MESSAGE(STATUS "unknown CMAKE_BUILD_TYPE = " ${CMAKE_BUILD_TYPE})
ENDIF ()
然后再创建一个main.cpp文件,内容如下:
int main()
{
return 0;
}
目录结构如下:
test/
│
├──CMakeLists.txt
├──main/
│ ├──── CMakeLists.txt
│ ├──── main.cpp
3.编译项目
使用vscode打开test目录,如图:
然后点击CMake插件,选择调试工具包,如图:
这里我们选择GCC 8.10xxxx,也就是之前装的mingw64
配置完成之后,如图:
这里配置的是Debug,如果要切换release模式,编辑配置下面的Debug,如图:
然后切换release,如图:
编译程序,点击编译图标,如图:
然后就会生成exe到指定的目录,如图:
编译的文件在项目根路径下面的build目录下,也就是在CMakeLists.txt配置的:
set(PROGRAM_PATH_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}build/debug)
set(PROGRAM_PATH_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}build/release)
4.调试
在main函数上面打一个断点,然后点击调试按钮,如图:
然后代码就会走到断点的位置处,如图: