【问题标题】:How do I compile C++ from Visual Studio Code on Mac OS? (I can only do it via the terminal)如何在 Mac OS 上从 Visual Studio Code 编译 C++? (我只能通过终端来做)
【发布时间】:2023-03-08 17:41:02
【问题描述】:

我可以在文本编辑器(例如 BBEdit)中编写 C/C++,然后使用终端编译和运行目标代码。

g++ -o hello hello.c

但现在我正在尝试将 Visual Studio Code 作为 IDE。我无法发出 BUILD 命令并在 IDE 中查看输出。有一些关于 tasks.json 文件的内容。

我尝试搜索讨论,但只是设法进一步混淆。

有人甚至这样做吗?现在 Visual Studio Code 刚刚成为一个花哨的文本编辑器,没有集成编译。

(BBEDIT 的附录)

我想我会编辑这篇文章,以进一步解释其他用户使用 BBEdit 或类似文本编辑器的工作流程。

我有可以通过 BBEdit 脚本菜单访问的 AppleScript。有两个脚本。一个是 BUILD 脚本,一个是 RUN 脚本。他们获取当前打开的文件名并将其发送到终端以执行编译到 g++,我不得不将其制作为两个脚本,因为我无法让 AppleScript 识别 Unix 命令以使用 && 组合命令

这是构建脚本。您可以使用 Script Editor 对其进行编辑,并将其放置在 BBEdit 可以看到的 Scripts 文件夹中:

tell application "BBEdit" to set filePath to ((characters 8 thru -1 of (URL of document 1 as string)) as string)

tell application "Terminal"
    do script "g++ " & filePath
end tell

这是运行脚本

tell application "BBEdit" to set filePath to ((characters 8 thru -1 of (URL of document 1 as string)) as string)

tell application "Terminal"
    activate
    do script "./a.out"
end tell

要将它们作为快捷方式使用,只需使用系统首选项下的 Mac OS 键盘快捷方式设置,并为 BBEdit 创建两个快捷方式。我使用 SHIFT + COMMAND + B 构建,+ R 运行脚本。

【问题讨论】:

  • 请更具体一些。另外,如果这是您所要求的,请转到终端 -> 新终端以打开终端
  • 官方文档应该会有所帮助,即使您使用的是 gcc 而不是 clang:https://code.visualstudio.com/docs/cpp/config-clang-mac
  • 好的,谢谢,我会再看一遍文档(我之前试过)
  • 我浏览了文档,现在成功编译并运行。感谢您的链接。不知何故,我从未设法找到特定于 Mac 的教程,并一直试图理解 Windows 的教程,并将其改编为 Mac(当然没有运气!)。

标签: c++ macos visual-studio-code gcc


【解决方案1】:

一些解决方案:

  1. 安装 XCode 命令行工具(您可能已经拥有它)。它的 C++ 编译器是 clang 而不是 gcc。因此,与其调用gcc hello.c -o hello,不如运行clang hello.c -o hello。这是一个插入式替代品。

  2. Install homebrew 然后用brew install gcc 安装gcc

【讨论】:

  • 谢谢 我认为安装编译器没有问题。我可以通过终端使用它。我只需要将 VSC 配置为自动发出命令行命令。
  • 哦,好吧,我明白了。我也是一个重度 vscode 用户,我通常更喜欢在构建目录中打开一个终端(MobaXterm 等)并输入 make。原因是构建正确配置真的很尴尬,并且每个项目都会改变。此外,如果您使用 cmake,则无论如何都必须在终端中发出配置命令。
  • 你考虑过 Visual Studio(不是 Code)吗? VS 的工作方式略有不同,并以与 IDE 更集成的方式处理所有构建和配置
  • 好的,我开始理解您为什么说构建可以针对每个项目进行更改。那么您需要编辑任务 JSON 文件吗?至少这是我目前的理解水平。我已经安装了 Studio,但后来我发现(不正确?)微软在 Mac 上不支持 C++,我发现的只是 C#/NET 支持和其他东西,但不是 C++,所以我卸载了它,只专注于 CODE。
猜你喜欢
  • 2015-07-10
  • 1970-01-01
  • 2018-08-05
  • 2013-12-18
  • 2022-01-25
  • 2015-11-18
  • 1970-01-01
  • 2014-12-12
  • 1970-01-01
相关资源
最近更新 更多