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

6 c++ compilation sublimetext sublimetext3 c++14

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

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

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

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

  1. 转到包并提取C++.sublime-package
  2. 打开C++ Single File.sublime-build
  3. 更改

    "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\""
    
    Run Code Online (Sandbox Code Playgroud)

    "shell_cmd": "g++ -std=c++14 \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\""
    
    Run Code Online (Sandbox Code Playgroud)

    -std=c++14在构建和运行中都添加了

  4. 最初在Sublime Text 3中保存并覆盖包

这是正确的方法吗?它被命名为单个文件 - 如果我想使用多个文件,这是否需要担心?

And*_* DM 6

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

点击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}'"]
   }
 ]
}
Run Code Online (Sandbox Code Playgroud)

(我相信您可以使用已有的行并将其保存到新的构建系统文件中.)

现在保存新版本,选择它Tools -> Build System.
现在你可以构建和运行了CTRL + B