【问题标题】:How to edit Sublime Text build settings?如何编辑 Sublime Text 构建设置?
【发布时间】:2014-07-10 11:06:39
【问题描述】:

我想在 Ubuntu 12.04 上的 Sublime Text 3 的 C++ Single File build 中启用 -std=gnu++11

我已经将工具链升级到最新的 g++ 并且不想在每次构建时都看到以下错误:

错误:#error 此文件需要对 ISO C++ 2011 标准的编译器和库支持。此支持目前处于试验阶段,必须使用 -std=c++11 或 -std=gnu++11 编译器选项启用。

我浏览到/home/myuname/.config/sublime-text-3,但找不到任何要编辑的文件。

如何编辑构建设置?

【问题讨论】:

    标签: sublimetext3 sublimetext


    【解决方案1】:

    已编辑

    我的original answer 可以工作,但有更好的方法可以做到这一点,即创建您自己的build system。这个用例正是该功能存在的原因。

    前往ToolsBuild SystemNew Build System…(一路最下方)输入以下内容.另存为C++ 11 Single File.sublime-build,现在可以在构建系统菜单中访问它。选中它,点击 CtrlB 构建,然后点击 CtrlShiftB运行生成的程序。或者您可以使用 Build and Run 选项并通过点击 CtrlB 来调用它,然后选择该选项。

    {
        "cmd": ["g++", "-std=gnu++11", "${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": ["${file_path}/${file_base_name}"]
            },
            {
                "name": "Build and Run",
                "cmd": ["g++ -std=gnu++11 ${file} -o ${file_path}/${file_base_name} && ${file_path}/${file_base_name}"],
                "shell": true
            }
        ]
    }
    

    如果您以后需要编辑它,该文件位于PackagesUser 文件夹中。 Packages目录是选择Preferences → Browse Packages…时打开的目录:

    • Linux:~/.config/sublime-text-3/Packages~/.config/sublime-text/Packages
    • OS X:~/Library/Application Support/Sublime Text 3/Packages~/Library/Application Support/Sublime Text/Packages
    • Windows 常规安装:C:\Users\<b><i>YourUserName</i></b>\AppData\Roaming\Sublime Text 3\PackagesC:\Users\<b><i>YourUserName</i></b>\AppData\Roaming\Sublime Text\Packages
    • Windows 便携式安装:<b><i>InstallationFolder</i></b>\Sublime Text 3\Data\Packages <b><i>InstallationFolder</i></b>\Sublime Text\Data\Packages

    具体路径取决于版本以及是否从 Sublime Text 3 升级。

    【讨论】:

    • 我正在这样做。为什么没有在 sublime 网站上说明是我想知道的。
    • 不构建,我在执行 ctrl+b { "shell_cmd": "g++ \"${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", "shell_cmd": "g++ -std=gnu++ 11 \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\"" } ] }
    • @raikrahul - 据我所知,选项应该在文件名之前 - ["g++", "-std=gnu++11", "-lpthread", "-g", "${file}", "-o", "${file_path}/${file_base_name}"]。基本上,写出命令的方式与在命令行或 Makefile 中运行它的方式相同。说到这一点,我强烈建议不要编辑 .sublime-build 文件以获得越来越复杂的选项,而是使用 Makefile,并让构建系统运行 make
    • 如果您添加/创建自定义构建脚本,它将位于不同的位置。例如,我的在:~/.config/sublime-text-3/Packages/User/c++11.sublime-build
    • 如果是自定义构建,在 MacOS 上它们位于:~/Library/Application Support/Sublime Text 3/Packages/User
    【解决方案2】:

    就我而言,问题在于在 Windows 中,ST3 调用的是 py 而不是默认的 python。如果你在 "cmd": ["python", "-u", "$file"] 中为本地 python 解释器更改 python,新系统应该可以工作。

    {
            "cmd": ["python3", "-u", "$file"],
            "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
            "selector": "source.python",
        
            "env": {"PYTHONIOENCODING": "utf-8"},
        
            "windows": {
                "cmd": ["python", "-u", "$file"],
            },
        
            "variants":
            [
                {
                    "name": "Syntax Check",
                    "cmd": ["python3", "-m", "py_compile", "$file"],
        
                    "windows": {
                        "cmd": ["py", "-m", "py_compile", "$file"],
                    }
                }
            ]
        }

    【讨论】:

      猜你喜欢
      • 2013-09-27
      • 2014-10-30
      • 2014-05-22
      • 2012-11-19
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2015-09-04
      • 1970-01-01
      相关资源
      最近更新 更多