【问题标题】:Sublime text not recognizing "-std=c++17" even after upgrading to GCC-6.3.0即使升级到 GCC-6.3.0,Sublime 文本也无法识别“-std=c++17”
【发布时间】:2021-06-05 17:26:11
【问题描述】:

我正在使用 sublime text 来编译和运行 c++ 文件。但是当我尝试使用“-std=c++17”编译构建时,崇高的文本无法识别 C++17。我用崇高的文字制作了以下构建系统:

{
"cmd": ["g++.exe", "-std=c++17", "${file}",
        "-o", "${file_base_name}.exe",
        "&&", "${file_base_name}.exe<inputf.in>outputf.out"],
"shell":true,
"working_dir":"$file_path",
"selector":"source.cpp"
}

当我使用上面的构建系统编译任何 cpp 文件时,以下错误消息会以 sublime 文本显示:

cc1plus.exe: error: unrecognized command line option "-std=c++17"
[Finished in 177ms]

我已检查并确保它仅从命令提示符获取 GCC-6.3.0。

Microsoft Windows [Version 10.0.19042.985]
(c) Microsoft Corporation. All rights reserved.

C:\Users\hp>g++ --version
g++ (MinGW.org GCC-6.3.0-1) 6.3.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

我尝试使用“-std=c++1z”而不是“-std=c++17”,但这也无济于事。

有趣的是,当我在命令提示符下直接使用 g++ 命令时,我可以使用“-std=c++17”来运行它。使用“-std=c++17”从命令提示符编译 C++ 文件时没有任何问题。当我使用命令提示符时,以下命令工作正常:

g++.exe -std=c++17 ystest.cpp

【问题讨论】:

  • 尝试将"--version" 添加到构建系统配置中,以仔细检查 Sublime 选择的版本。它可能与您在命令行中看到的不同。
  • 好吧,GCC 6 只支持少数 C++17 特性。所以无论如何我都不确定目标是什么。
  • 您正在升级到 GCC 6.3,已经 5 年了,所以我想知道您之前使用的是什么版本。为什么不升级到最新的 GCC 版本,例如 9 或 10?

标签: c++ c++17 sublimetext3 mingw


【解决方案1】:

设置环境

  • 安装 MinGW 编译器 MinGW 是 GNU 编译器集合 (GCC) 的原生 Windows 端口。安装最新的MinGW编译器,从here下载后,这是最新支持的C++17版本9。你的路径最好是C:\MinGW。最后,将 bin 目录 C:\MinGW\bin 添加到 System PATH。 换句话说,将其添加到环境变量中。

  • 创建构建系统 Sublime Text 提供构建系统以允许用户运行外部程序。为 Sublime Text 创建一个新的构建系统,用于设置 C++ 编译。 转到工具 > 构建系统 > 新构建系统。将以下代码粘贴到文件中并保存。

{
"cmd": ["g++.exe","-std=c++17", "${file}", "-o", "${file_base_name}.exe", "&&" , "${file_base_name}.exe<inputf.in>outputf.in"],
"shell":true,
"working_dir":"$file_path",
"selector":"source.cpp"
}

这可用于管道输入来自 inputf.in 文件,并输出到 outputf.in 文件。请注意,这使用 -std=c++17 标志来启用 C++17 的最新功能。如果您不想要这个或想使用 C++14,请将其替换为 -std=c++14 标志。




希望这有助于运行您的文件,如果是这样,请接受答案!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-26
    • 2019-08-22
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 2020-11-10
    • 2023-03-17
    相关资源
    最近更新 更多