gpt4 book ai didi

c++ - 在 macOS 上使用 clang++ 在 Visual Studio Code 中编译多个 .cpp 文件

转载 作者:行者123 更新时间:2023-12-02 10:32:04 24 4
gpt4 key购买 nike

我正在尝试在 macOS 上使用 clang++ 构建一个包含多个 *.cpp 文件的简单项目。

任务.json:

    {
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "clang++ build active file",
"command": "/usr/bin/clang++",
"args": [
"-std=c++17",
"-Wall",
"-Wextra",
"-Weffc++",
"-Wconversion",
"-pedantic-errors",
"-stdlib=libc++",
"-g",
"${workspaceFolder}/*.cpp",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

结果命令如下所示:
/usr/bin/clang++ -std=c++17 -Wall -Wextra -Weffc++ -Wconversion -pedantic-errors -stdlib=libc++ -g '/Users/USER/Developer/WORKINGDIR/Lesson 2/Lesson 2.8/*.cpp' -o '/Users/USER/Developer/WORKINGDIR/Lesson 2/Lesson 2.8/main' 

但是编译器抛出一个错误:
clang: error: no such file or directory: '/Users/USER/Developer/WORKINGDIR/Lesson 2/Lesson 2.8/*.cpp'

但是,如果我更改指向文件的字符串:
'/Users/USER/Developer/WORKINGDIR/Lesson 2/Lesson 2.8/*.cpp'

对此(不带引号并添加“\”):
/Users/USER/Developer/WORKINGDIR/Lesson\ 2/Lesson\ 2.8/*.cpp

一切都编译得很好。

但是如何在tasks.json 中配置相同的字符串?或者我应该在那里改变什么才能正常工作?

最佳答案

要在 macOS 上的 VS Code 中使用 clang++ 编译多个 cpp 文件,您需要配置 tasks.json 文件并确保 args 具有正确的项目文件路径。这是对我有用的:

  • 我在 Visual Studio 中创建了一个新项目,并将 .cpp 和 .h 文件放在直接文件夹中。
  • 然后,我使用 VS Code variables 更新了我的 tasks.json指向项目中的正确位置。示例:

  • 请注意,使用 ${fileDirname} ${workspaceFolder} 因为变量基于我的项目结构起作用。
    {       
    "version": "2.0.0",
    "tasks": [
    {
    "type": "shell",
    "label": "clang++ build active file",
    "command": "/usr/bin/clang++",
    "args": [
    // "${fileDirname}/*.cpp",
    "${workspaceFolder}/*.cpp",
    "-o",
    //"${fileDirname}/${fileBasenameNoExtension}"
    "${workspaceFolder}/${fileBasenameNoExtension}"
    ],
    "options": {
    "cwd": "${workspaceFolder}"
    },
    "problemMatcher": [
    "$gcc"
    ],
    "group": {
    "kind": "build",
    "isDefault": true
    }
    }
    ]
    }
  • 从 VS Code 中,我选择了 Terminal > Run Build Task... 输出文件
  • 我在 VS Code 中打开了一个终端窗口并运行了 ./[filename] (其中文件名是输出文件的名称)和执行的代码。
  • 关于c++ - 在 macOS 上使用 clang++ 在 Visual Studio Code 中编译多个 .cpp 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61876249/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com