IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 【工具配置篇】VsCode中多文件编译之CMake配置 -> 正文阅读

[开发工具]【工具配置篇】VsCode中多文件编译之CMake配置

一.参考教程

1.B站配置视频

2.教程视频总结

(一)基于g++命令

  • g++编译文件,生成带调试信息的可执行文件、并调试
g++ -g main.cpp -o my_single_swap
  • g++编译文件,生成带调试信息的可执行文件、并调试
g++ -g main.cpp swap.cpp -o my_multi_swap

(二)基于cmake

  • 编写最简单的CMakeList.txt
project(MYSWAP) //工程名
add_executable(mt_cmake_swap, main.cpp swap.cpp) //生成可执行文件,第一个参数为可执行文件名,后面的参数为链接的源文件
  • 进行多文件编译并测试
mkdir build
cd build
#如果电脑上已安装了VS,可能会调用MSVC编译器,使用(cmake -G "MinGW Makefiles" ..)代替(cmake ..)即可
#仅第一次使用cmake时使用(cmake -G "MinGW Makefiles" ..) 后面可使用(cmake ..)
cmake ..
mingw32-make.exe
  • 配置json
    ° \circ ° launch.json – for debug
    ° \circ ° tasks.json – for build before debug

3.扩展

(一)配置文件预定义变量#
支持下面的预定义变量:

${workspaceFolder} - 当前工作目录(根目录)
${workspaceFolderBasename} - 当前文件的父目录
${file} - 当前打开的文件名(完整路径)
${relativeFile} - 当前根目录到当前打开文件的相对路径(包括文件名)
${relativeFileDirname} - 当前根目录到当前打开文件的相对路径(不包括文件名)
${fileBasename} - 当前打开的文件名(包括扩展名)
${fileBasenameNoExtension} - 当前打开的文件名(不包括扩展名)
${fileDirname} - 当前打开文件的目录
${fileExtname} - 当前打开文件的扩展名
${cwd} - 启动时task工作的目录
${lineNumber} - 当前激活文件所选行
${selectedText} - 当前激活文件中所选择的文本
${execPath} - vscode执行文件所在的目录
${defaultBuildTask} - 默认编译任务(build task)的名

(二)预定义变量示例:
假设你满足以下的条件

一个文件 /home/your-username/your-project/folder/file.ext 在你的编辑器中打开;
一个目录 /home/your-username/your-project 作为你的根目录.
下面的预定义变量则代表:

${workspaceFolder} - /home/your-username/your-project
${workspaceFolderBasename} - your-project
${file} - /home/your-username/your-project/folder/file.ext
${relativeFile} - folder/file.ext
${relativeFileDirname} - folder
${fileBasename} - file.ext
${fileBasenameNoExtension} -file
${fileDirname} - /home/your-username/your-project/folder
${fileExtname} - .ext
${lineNumber} - 光标所在行
${selectedText} - 编辑器中所选择的文本

4.操作方法

(一)g++命令 and 修改 launch.json

  • 先在终端生产可执行文件
g++ -g main.cpp swap.cpp -o my_multi_swap
  • 然后按F5进行调试,同单文件操作相同相同,报错因为默认生产的配置文件是单文件路径,进行如下操作修改
    ° \circ ° launch.json
"program": "${workspaceFolder}/my_multi_swap.exe", //该路径指向生产的exe文件,指定调试的是该文件
"cwd": "${workspaceFolder}",

// 该方法由于已经通过命令行生成了可执行文件,所以可以将launch.json中的"preLaunchTask"注释掉

(二)

  • 先创建CMakeLists.txt,并填入
project(MYSWAP)
add_executable(mt_cmake_swap, main.cpp swap.cpp) 
  • 然后进行CMake配置,ctrl+shift+P,输入CMake,找到CMake:Configure,指定GCC+版本号的编译器
    ° \circ ° 如果报错出现不知道选择哪一个cmake,提示更新setting配置文件,则通过ctrl+shift+P输入settings.json,将下面代码添加进工作区的配置文件中,再进行CMake配置
{
    "cmake.generator": "MinGW Makefiles"
}
  • 之后会在工作区出现build文件夹,接着在命令行输入
cd build
cmake ..
mingw32-make.exe
  • 配置launch.json
"program": "${workspaceFolder}/build/my_multi_swap.exe", 
"cwd": "${workspaceFolder}",
  • 之后就可以用F5进行调试了,值得注意的是当前注释了"preLaunchTask",所以对文件进行修改后,文件并没有重新编译,需要重新编译,再进行调试
  • 所以可以使用ctrl+shift+P,输入task,创建一个新的task.sjon,并进行如下配置
                "-g",
                "main.cpp",
                "swap.cpp",
                "-o",
                "${fileDirname}\\out.exe"
  • 同时使launch.json中可执行文件路径与之对应
           "program": "${workspaceFolder}/out.exe",

// 实际上这里的功能等同于命令行中的 g++ -g main.cpp swap.cpp -o out(建议使用该方法,调试时不用重新编译)

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-13 09:28:08  更:2021-09-13 09:30:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:31:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码