默认情况下在 Sublime Text 3 中将程序编译为 c++ 14

Compiling program as c++ 14 in Sublime Text 3 as default

我知道我们可以使用 g++ 编译器将程序编译为 C++。但是g++编译器默认是98版本。要 运行 它作为 C++ 14,我们需要在终端中添加 -std=c++14

Sublime Text 由于其轻量级和功能而被认为是竞争性编程的有价值的编辑器。在这些比赛中,时间很重要,因此时间浪费在复制文本文件然后从终端 运行ning 上。与 98 相比,C++ 14 具有丰富的库和其他重要功能。因此,人们希望能够在 sublime text 和 C++ 14 上编译代码。

但是我如何确保在 Sublime Text 3 中编译代码时,它默认编译为 C++14?

经过一番摆弄后,我想出了以下解决方案 -

  1. 转到包并提取 C++.sublime-package
  2. Open C++ Single File.sublime-build
  3. 改变

    "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\""
    

    "shell_cmd": "g++ -std=c++14 \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\""
    

    在构建和 运行

  4. 中添加了 -std=c++14
  5. 保存并覆盖原来在 Sublime Text 3 中的包

这样做正确吗?它被命名为单个文件 - 如果我想使用多个文件,这是否值得担心?

通常,编辑默认文件是不好的。 只需创建一个新的构建系统 Pallet -> Build: New Build System 在那里添加您的更改并根据需要保存。 然后,当你想使用它时 select Build With: (new build system name) 如果您还需要 Build - 运行 选项,请改用此代码:

{
 "cmd": ["g++", "-std=c++14", "${file}", "-o", "${file_path}/${file_base_name}"],
 "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
 "working_dir": "${file_path}",
 "selector": "source.c, source.c++",
 "variants":
 [
   {
     "name": "Run",
     "cmd":["bash", "-c", "g++ -std=c++1y '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
   }
 ]

}

编辑默认文件的最佳方法是使用PackageResourceViewer

安装后,运行 来自 command palettePackageResourceViewer: Open Resource 命令。您将看到一个包列表,您可以导航到 select 您要编辑的文件。

selected 文件将在新文档中打开,任何更改都将保存到位于 Packages/PackageThatYouEdited/FileThatYouEdited.ext

的新文件中

此方法的好处是 Packages 中编辑的文件现在将覆盖驻留在 sublime-package 文件中的原始文件,但原始文件将保持不变。如果您选择删除已编辑的文件,sublime-package 中的原始文件将再次激活。

最好创建一个新的构建系统,方法如下:

单击 Tools -> Build System -> New Build System

这是我使用的(注意标志-std=c++14

{
 "cmd":["bash", "-c", "g++ -std=c++14 -Wall '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"],
 "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
 "working_dir": "${file_path}",
 "selector": "source.c, source.c++",
 "variants":
 [
   {
     "name": "Run",
     "cmd":["bash", "-c", "g++ -std=c++14 '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
   }
 ]
}

(我相信你可以只使用你已有的行并将其保存到一个新的构建系统文件中。)

现在保存新版本,select 它在 Tools -> Build System
现在您可以使用 CTRL + B

构建 运行