如何在 Netbeans 中启用 C++17?

Bra*_*cus 9 c++ netbeans netbeans-8 c++17 netbeans-11

在“工具”>“选项”>“C/C++”>“其他”中,没有将 C++17 作为默认标准的选项。

你如何编译需要 C++17 的代码?

sko*_*isa 13

更新了 NetBeans 12 的 3/28/21,如本答案末尾所述。

C ++ 17标准中的NetBeans 8.2发布之后发布一年多了,所以C ++ 17是不能作为的8.2标准版本的选项。

但是,NetBeans 错误报告错误 271136 - 支持 C++17 标准解决了这个缺陷,如果您从 2018 年开始下载并安装任何最新的 NetBeans 8.2 夜间版本,问题将得到解决;创建 C++ 项目时,C++17可用作选项:

选择Cpp17

如果您随后选择{project} > Properties > Build > C++ Compiler,您可以验证是否正在使用C++17标准:

项目属性

笔记:

  • 当您创建后续 C++ 项目时,项目向导将默认继续使用C++17标准,因此除非/直到您选择替代标准,否则它将成为“默认标准”。
  • 使用 NetBeans 8.2 的每晚构建版本而不是标准版本也更可取,因为它包含许多不相关的错误修复。
  • 一个更好的选择(如果可能的话)是下载并安装 NetBeans 的最新版本Apache NetBeans 11.2,它也提供C++17作为选项。
  • 如果您安装 NetBeans 8.2 或 NetBeans 11.2 的夜间版本,则不会触及您现有的 NetBeans 8.x 安装,因此您可以在必要时安全地恢复。

20 年 1 月 21 日和 20 年 1 月 22 日更新:

这些是使 C++17 在 NetBeans 11.2 上可用所需的步骤:

  • 使用File > New Project...打开项目向导显示默认情况下无法创建C/C++项目。
  • 选择工具 > 插件 > 设置,然后单击添加按钮。
  • Update Customizer Center屏幕中,将Name设置为NBDevDarkThemes,将URL 设置http://bits.netbeans.org/dev/nbms-and-javadoc/lastSuccessfulBuild/artifact/nbbuild/nbms/updates.xml.gz,然后单击OK
  • 确保仅选中“设置”选项卡上的NbDevDarkBeans条目。
  • 通过单击可用插件选项卡安装C/C++插件,然后检查C/C++条目。该插件的版本应该是1.31.5.1。单击安装按钮。
  • 安装插件后,单击Installed Plugins选项卡,选中Show Details复选框并向下滚动以验证 C/C++ 插件已安装且处于活动状态插件
  • 转到Tools > Options > C/C++ >,单击Build Tools选项卡并根据需要配置外部 C/C++ 环境。例如: Cpp选项
  • 现在转到File > New Project...,您应该可以选择C/C++ > C/C++ Application
  • 单击下一步 >。在Project Name and Location屏幕上,您现在应该能够为标准选择C++17新Cpp项目

21 年 3 月 28 日更新了 NetBeans 版本 12.x:

坏消息:NetBeans 不再正式支持 C++!请参阅 NetBeans 团队负责人 Geertjan Welenga 于 21 年 3 月 25 日对最近的错误报告NETBEANS-5501 C++17 不再可用的明确答复:

*At the moment, NetBeans doesn't support C/C++, the plugins you were/are using from 8.2 are not really officially supported, though work on this is ongoing here, with an end goal to having it officially part of NetBeans, though that will take a while:

https://lists.apache.org/thread.html/r4ac84633554ce80d99b0710e7a803ce1dc322680c914b18058876b51%40%3Cdev.netbeans.apache.org%3E

You're welcome to join in with the discussions on dev above.*
Run Code Online (Sandbox Code Playgroud)

这就是说,有一个非官方的解决办法,如在错误报告中详述 NETBEANS-4452的插件安装程序发现装载C / C ++远程开发API的问题超时......而安装以下插件:C ++。那是:

  • 下载 JDK 8(如有必要)。
  • 通过编辑netbeans.conf临时将 JDK NetBeans 12 使用的 JDK 8 设置为 JDK 8 ,然后重新启动 NetBeans。
  • 安装相关的 C/C++ 插件。
  • 通过编辑netbeans.conf,然后重新启动 NetBeans,将 JDK NetBeans 12 使用的 JDK NetBeans 12 重置为您最初使用的那个(对于大多数用户来说可能是 JDK 14)。
  • C++ 17 应该可以在 NetBeans 12 上使用,因为它没有得到官方支持。