目录
2. 在vscode下载cmake的插件CMake Tools
1. 在VS Code中按下ctrl + shift + p键,然后输入Cmake:Q
1. 在VS Code上按下F5,选择CMake调试程序选项
2. 按下ctrl + shift + b (调试项目)(目的为了生成tasks.json)
linux(vscode)构建C语言CMake项目
1. 检查linux是否下载cmake,否则执行下列代码
sudo apt install cmake
2. 在vscode下载cmake的插件CMake Tools
3. 构建项目(项目结构)
1. bin是编译后的文件存放处
2. inc/inner是头文件存放处
3. src则是代码存放处
4. build则是构建文件存放处(存放的系统构建文件/插件构建文件)
5. lib可以理解为依赖库
还有后续文件,我会增加
4. 进行cmake配置
1. 在VS Code中按下ctrl + shift + p键,然后输入Cmake:Q
2. 点击CMake:快速入门,此时显示提供项目名
名字可以随便起,暂时我是这样理解的,输入完成后,按下enter确认
3. 确认项目
是c项目就选第二个,是c++项目就选择第一个
4. 选择创建可执行文件
5. 不知道是啥,按需选取,不需要则不选,直接点击确定
6. 如若新的预设也没有,则点击空白处取消
会自动生成CMakeLists.txt文件
main.c文件(不需要)
5. 构建与调试项目
1. 在VS Code上按下F5,选择CMake调试程序选项
选择弹出的第一个
有的用户会显示默认选项,选择默认选项即可
不管怎么着,要把launch.josn调出来,如果调不出来,那么复制一份
因为你会再改
我使用的lldb创建成功的,然后点击页面的添加配置,或者按照我的,页面直接复制也好。
或复制以下文本,注意代码中的注释。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
//此处改成你的程序路径,${workspaceFolder}/bin/main,这个main编译后的文件存放出(二进制文件)
"program": "${workspaceFolder}/bin/main",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
2. 按下ctrl + shift + b (调试项目)(目的为了生成tasks.json)
点击第二个CMake模板生成的右边的小齿轮,生成tasks.json文件
把下方代码复制进tasks.json
// tasks.json文件配置
{
"version": "2.0.0",
"options": {
"cwd": "${workspaceFolder}/build"
},
"tasks": [
{
"type": "shell",
"label": "cmake",
"command": "cmake",
"args": [
".."
]
},
{
"label": "make",
"group": {
"kind": "build",
"isDefault": true
},
"command": "make",
"args": []
},
{
"label": "Build", //### launch.json中选择了这个
"dependsOrder": "sequence",
"dependsOn": [
"cmake",
"make"
]
}
]
}
此时编译即可成功
6. CMakeFile.txt文件
把文件里面的内容更换成,下方的数据即可
cmake_minimum_required(VERSION 3.10.0) # CMake版本
project(t1 VERSION 0.1.0 LANGUAGES C) # 项目版本
# debug模式
SET(CMAKE_BUILD_TYPE Debug) # debug模式
# SET(CMAKE_BUILD_TYPE Release) #Release模式
# 暂时不管,测试
include(CTest)
enable_testing()
# 2.需要的依赖库 现在没有
# 3.设置可执行文件与链接库保存的路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
# 4.设置头文件目录使得系统可以找到对应的头文件
include_directories(
${PROJECT_SOURCE_DIR}/inc/inner # 自己目录的头文件
${EIGEN3_INCLUDE_DIR} # 其他系统目录的头文件 也可以直接写路径/usr/include/eigen3
${Pangolin_INCLUDE_DIRS}
)
# 5.编译动态库并链接库文件
# 6.生成可执行文件
# 选择需要编译的源文件,有几个文件写几个
# add_executable(my src/main.c src/test.c)
# 扫描src目录下的所有C文件
aux_source_directory(src SRC_FILES)
add_executable(main ${SRC_FILES})
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
# 配置cmake项目c语言的版本 11
set(CMAKE_C_STANDARD 11)
# 设置交叉编译器的位置
set(CMAKE_C_COMPILER gcc)
include(CPack)
7. 编译
在common文件与you.c,main.c文件里面写入几个测试方法,然后点击CMakeLists.txt文件按下ctrl + shift + b,构建文件,然后打开终端,输入./bin/mian执行文件,即可输出