vscode多文件编译C/C++

原理还是运行g++命令

一、创建任务

由于这项功能可能在各个工作区使用,所以我们创建用户任务。

ctrl+shift+p,搜索打开用户任务,点击,然后点击others,会打开一个tasks.json文件。

文件内容可参考如下:(此任务功能是编译当前文件的根目录下所有扩展名为cpp的文件

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "cpp多文件编译",
            "type": "shell",
            "command": "cd ${fileDirname} ; g++ ./*.cpp -o ${fileBasenameNoExtension} ; ${fileDirname}\\${fileBasenameNoExtension}",
            "problemMatcher": [
                "$gcc"
            ]
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": true,
                "panel": "shared",
                "showReuseMessage": true,
                "clear": false
            }
        }
    ]
}

上述代码第9行的分号“;”是分割所要执行的几个命令。

本来写的是“&&”,但报错:标记“&&”不是此版本中的有效语句分隔符。
原因是:vscode默认终端使用powershell,其使用分号“;”分割,而非“&&”。而cmd支持“&&”,把终端换成cmd也可以解决此问题。

如果用这一个任务实现c和cpp两种的编译,可以将第9行修改为如下:(加了字符串“./*.c”)

"command": "cd ${fileDirname} ; g++ ./*.cpp ./*.c -o ${fileBasenameNoExtension} ; ${fileDirname}\\${fileBasenameNoExtension}",

但这样写的话,在运行任务时,如果是在编译c文件,会报错:(因为当前目录下没有cpp文件)

error: ./*.cpp: Invalid argument

虽然报错,不过影响文件的编译和执行,程序该输出的也会正常输出。

不报错的解决办法暂时没找到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值