`tasks.json 中的“${workspaceFolder/*.cpp}”不起作用

问题描述 投票:0回答:2
    {
      "type": "cppbuild",
      "label": "C/C++: g++ build c++ files",
      "command": "/usr/bin/g++",
      "args": [
        "-std=c++17",
        "-fdiagnostics-color=always",
        "-g",
        "${workspaceFolder}/*.cpp",
        "-o",
        "${workspaceFolder}/build/a.out"
      ],
      "options": {
        "cwd": "${fileDirname}"
      },
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      },
    }

直到几天前,当我在tasks.json文件中设置这个并构建时,工作区中的所有cpp文件都被构建了。但现在构建无法正常工作并出现这样的错误。

clang:错误:没有这样的文件或目录:

"${workspaceFolder/*.cpp}"
更改为
"${files}"
并构建打开的文件后,如果构建正常。

wildcard
2个回答
0
投票

“${workspaceFolder}/*.cpp”无法递归搜索。请确保当前工作空间文件夹中至少有一个cpp文件,否则*.cpp无法匹配任何文件,将保持原样。


0
投票

您需要在task.js文件中将原来的

${files}
替换为
${fileDirname}\\*.cpp
,这在需要执行多个.cpp文件时很有用,将文件留在
args
部分为:

"args": [
            "-fdiagnostics-color=always",
            "-g",
            "${fileDirname}\\*.cpp",
            "-o",
            "${fileDirname}\\${fileBasenameNoExtension}.exe"
        ],
© www.soinside.com 2019 - 2024. All rights reserved.