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配置c++多目录多文件cmake编译(win linux通用) -> 正文阅读

[开发工具]vscode配置c++多目录多文件cmake编译(win linux通用)

2022.7.3:复杂项目有待验证!!待更新

在.vscode目录中添加以下三个文件

  • launch.json
  • settings.json
  • tasks.json
    这个文件配置也和linux win系统无关,你只需要在编译时告诉vscode使用哪个编译器即可。复杂项目还未测试,请悉知!

launch.json的配置内容

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",//配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg",//配置类型
            "request": "launch",//请求配置类型,有launch(启动)或attch(附加)两种
            "program": "${workspaceFolder}/build/main",  //调试时需要指定的程序路径
            "args": [],//调试时给程序输入的参数
            "stopAtEntry": false,//为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${workspaceFolder}",//调试程序时的工作目录,${workspaceFolder}表示代码所在目录
            "environment": [],
            "externalConsole": true,//调试时是否显示控制台窗口,true为在终端显示
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "make"  //这个重要,task中的make
        }
    ]
}

settings.json内容

{
    "files.associations": {
        "array": "cpp",
        "*.tcc": "cpp",
        "cctype": "cpp",
        "clocale": "cpp",
        "cmath": "cpp",
        "cstdarg": "cpp",
        "cstdint": "cpp",
        "cstdio": "cpp",
        "cstdlib": "cpp",
        "cwchar": "cpp",
        "cwctype": "cpp",
        "unordered_map": "cpp",
        "vector": "cpp",
        "exception": "cpp",
        "fstream": "cpp",
        "initializer_list": "cpp",
        "iosfwd": "cpp",
        "iostream": "cpp",
        "istream": "cpp",
        "limits": "cpp",
        "new": "cpp",
        "optional": "cpp",
        "ostream": "cpp",
        "sstream": "cpp",
        "stdexcept": "cpp",
        "streambuf": "cpp",
        "string_view": "cpp",
        "system_error": "cpp",
        "type_traits": "cpp",
        "tuple": "cpp",
        "typeinfo": "cpp",
        "utility": "cpp"
    }
}

tesks.json

{
    "version": "2.0.0",
    "options": {
        "cwd": "${workspaceRoot}/build"
    },
    "tasks": [
        {
            "label": "cmake",
            "type": "shell",
            "command": "cmake",
            "args": [
                "-G",
                "Unix Makefiles",
                "-DCMAKE_BUILD_TYPE=Debug",
                ".."
            ]
        },
        {
            "label": "make",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "type": "shell",
            "command": "make",
            "args": []
        }
        
    ]
}

怎么使用?

安装插件:

在这里插入图片描述

配置CMakeLists.txt

首先,主目录需要写一个CMakeLists.txt,然后每添加一个包含源码的子目录,都需要在子目录下写一个CMakeLists.txt,然后在主目录的CMakeLists.txt文件中包含该子目录。
例如,我的测试项目的整体结构是这样的:

---.vscode
---build
---func//子目录1
	---CMakeLists.txt
	---func.cpp
	---func.h
---lib//生成的库文件存放路径
---test//子目录2
	---CMakeLists.txt
	---add.cpp
	---add.h
	---hello.cpp
	---hello.h
---CMakeLists.txt
---main.cpp

在这里插入图片描述

cmake文件怎么写就不展示了,这就取决于你的项目是如何配置的,当然你也可以把所有源文件放在src目录下,头文件放在include目录下,这都是可以的,关键还是你如何配置你的CMakeLists.txt,因为vscode的配置已经在.vscode中配置好了,你需要告诉cmake编译你主目录下的所有文件!!,如果不知道cmake怎么写的话就学一下吧,基本的东西比较简单,学完之后写个简单的测试项目还是比较有成就感的,这也是学习的乐趣所在!

  开发工具 最新文章
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常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 23:10:55  更:2022-07-04 23:11:27 
 
开发: 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年5日历 -2024/5/5 22:06:04-

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