VSCode 配置 CMake
CMake是一个跨平台的开源构建工具,用于自动化构建过程。它可以生成标准的构建文件,从而简化了项目的构建和管理过程。
VSCode 配置 C/C++ 环境的详细过程可参考:VSCode 配置 C/C++ 环境
1 配置C/C++编译环境
如果是 Windows 环境,需要安装 MingW。
-
方案一
可以去官网(https://sourceforge.net/projects/mingw-w64/)下载安装包。
注意安装路径不要出现中文。
打开 windows shell 界面,输入
mingw-get install gcc
、mingw-get install g++
。
如果安装的时候提示安装包被错误下载,可使用方案二安装。 -
方案二
进入网址https://sourceforge.net/projects/mingw-w64/files/,下滑,下载图中所示压缩包。
找一个无中文路径解压缩。
添加环境变量。在Path中加入解压后的文件夹中的bin目录,如C:\ProgramFiles\MinGW\mingw64\bin。
-
测试
在 windows shell 界面输入gcc -v
、g++ -v
,正确出现版本号则配置成功。 -
创建 make.exe
进入 MingW 安装位置下的 bin 目录,将 mingw32-make 复制一份,并改名为 make.exe。如果不这样做,无法使用 make 命令,而需要使用 mingw32-make 命令作为替代。
2 安装 CMake
可以去官网(https://cmake.org/download/)下载安装包。
向下滑,找到安装包,直接下载安装即可。
3 安装 VSCode 插件
按 Ctrl+Shift+x,或点击图中图标,搜索以下插件并安装:C/C++ 、Code Runner、CMake、CMake tools。
4 创建 CMake 工程
新建一个文件夹并用 VSCode 打开。
按 Ctrl+Shift+p,或点击图中所示图标,打开命令面板。
搜索 cmake,选择 CMake 快速入门。
输入项目名称。
选择项目类型。
选择 Executable。
生成以下文件。
然后就可以编写代码了。
5 CMakeLists.txt
编写 CMakeLists.txt 后,在同级目录下创建 build 文件夹,进入 build 文件夹,使用命令 cmake ..
,可自动生成 Makefile。
如果当前项目首次使用 cmake 命令并且报错了,可以清空 build 目录下的所有文件后,尝试使用 cmake -G"MinGW Makefiles" ..
。
以下是 CMakeLists.txt 中一些可以使用的语句示例:
# 指定最小版本
cmake_minimum_required(VERSION 3.0.0)
# 制定项目名称
project(algorithm VERSION 0.1.0 LANGUAGES C CXX)
# 引入CTest
include(CTest)
enable_testing()
# 添加子项目
add_subdirectory(subdirectory)
# 如果有共享的头文件或库,可以在这里包含
include_directories(common_include_folder)
# 如果有共享的库文件,可以在这里链接
link_directories(common_lib_folder)
# 指定生成可执行文件
# add_executable(algorithm main.cpp)
# 链接子项目生成的库文件
# target_link_libraries(MyExecutable subproject1_lib subproject2_lib)
# 设置参数
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
set(CMAKE_CXX_COMPILER "D:\\ProgramFiles\\MingW\\mingw64-8.1.0\\bin\\g++.exe") # 指定编译器路径
# 添加所有源文件
file(GLOB SOURCES "src/*.cpp")
# 添加头文件路径
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
# 生成可执行文件
add_executable(partition_executable ${SOURCES})
示例:
假设项目结构如下:
project_root/
|- CMakeLists.txt
|- subproject1/
|- CMakeLists.txt
|- src/
|- main.cpp
|- utils/
|- utility.cpp
|- utility.h
|- include/
|- subproject1/
|- header1.h
|- header2.h
|- subproject2/
|- CMakeLists.txt
|- src/
|- main.cpp
|- math/
|- math.cpp
|- math.h
|- include/
|- subproject2/
|- header3.h
|- header4.h
主项目的CMakeLists.txt文件可以如下所示:
cmake_minimum_required(VERSION 3.10)
project(MyProject)
# 添加子项目
add_subdirectory(subproject1)
add_subdirectory(subproject2)
子项目的CMakeLists.txt文件可以如下所示:
cmake
# 子项目名
project(subproject1)
# 添加所有源文件
file(GLOB SOURCES "src/*.cpp" "src/utils/*.cpp")
# 添加头文件路径
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
# 生成可执行文件
add_executable(subproject1_executable ${SOURCES})
可以在每个子项目文件夹下执行以下命令来构建和运行单独的子项目:
mkdir build
cd build
cmake ..
make
./subproject1_executable
./subproject2_executable
6 运行
经过上一步可生成 Makefile,然后运行 make
命令,就可以生成 exe 可执行文件。
接下来运行可执行文件就可以了。
更多推荐
所有评论(0)