win10cmake构建
工具
- cmake:项目构建工具
- minigw64:gcc编译工具,里面包含make工具(需要改名)
- ninja:项目构建工具
- vscode:编辑工具
vscode 插件:
1.Cmake
2.Cmake Tools
安装并添加环境变量
- 直接安装cmake.msi到D:/gcc/Cmake
- 解压minigw64到D:/gcc/minigw64
- 解压ninja到D:/gcc/Cmake/bin
验证
win + r
cmd
cmake --version
gcc --version
ninja --version
构建项目
项目文件结构
│ CMakeLists.txt
│ mian.c
│
├─.vscode
│ c_cpp_properties.json
│ launch.json
│ tasks.json
│
└─src
CMakeLists.txt
func.c
func.h
cmake构建项目
- cmake文件编写
src/CMakelists.txt
# 遍历目录中所有源文件
aux_source_directory(. DIR_SRCS)
#使用指定的源文件将库添加到项目中。
add_library( src ${DIR_SRCS})
CMakelists.txt
#最低要求的CMake版本
cmake_minimum_required (VERSION 2.8)
# cmake 标准
set(CMAKE_CXX_STANDARD 11)
# 项目名称
project(hello)
# 添加一个子目录到build文件夹
add_subdirectory(src)
# 便利当前目录发现所有源文件
aux_source_directory(. DIR_SRCS)
# 要求编译可执行文件
add_executable (
${PROJECT_NAME}
${DIR_SRCS}
)
target_link_libraries(
${PROJECT_NAME}
src
)
-
cmake文件配置
F1---->输入cmake config–> 选择 gcc编译器
F1---->Cmake:配置(项目配置) -
验证配置
终端:
cd build
make
./hello.exe
配置vscode
- 配置c 环境脚本
F1---->输入c/c++ --> 选择 c/c++:编辑配置(JSON)
{
"configurations": [
{
"name": "Win32",
//头文件路径
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/src/**"
],
//宏定义
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
//编译工具
"compilerPath": "D:\\gcc\\mingw64\\bin\\gcc.exe",
"cStandard": "gnu18",
"cppStandard": "gnu++14",
"intelliSenseMode": "gcc-x64",
"configurationProvider": "ms-vscode.cmake-tools"
}
],
"version": 4
}
- 配置调试脚本
F1---->输入debug–> 选择 调试:打开launsh.json–>gdb.exe
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
//注意此处需要配置调试目标的完整路径
"program": "${workspaceFolder}\\build\\hello.exe",
"args": [],
"stopAtEntry": false,
//命令执行目录
"cwd": "${workspaceFolder}\\build",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:\\gcc\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
//调试前先执行编译
"preLaunchTask": "make"
}
]
}
- 配置编译脚本
F1---->输入task–> 选择 任务:配置任务–>gdb.exe
{
"tasks": [
{
"type": "shell",
"label": "make",
"command": "make",
"args": [
],
"options": {
//命令执行目录
"cwd": "${workspaceFolder}\\build",
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
],
"version": "2.0.0"d
}
- 验证vscode配置
ctrl + shift +b — 》 make
F5 调试
linux cmake 构建
安装 cmake
sudo apt-git install cmake
cmake文件不变
编译脚本 build.sh
#!/bin/bash
echo "cmake build !"
# 判断输出文件夹是否存在
if [ -d "./build/" ];then
echo "文件夹存在,删除重新创建"
rm -rf ./build/
mkdir ./build/
else
echo "文件夹不存在,创建"
mkdir ./build/
fi
cd ./build
cmake ./../
echo "make build !"
make