1

我想将 Sublime Text(2/ 3alpha) 用于简单的 c++ 程序,但我不能使用 c++11。我尝试更改构建文件,但添加 -std=c++11 没有帮助。我确实安装了带有 macports 的 GCC4.8(并且它可以正常工作)但显然崇高的文本正在使用 4.2 变体。如何让它使用较新的?我尝试在谷歌上搜索解决方案,但到目前为止还没有找到。感谢您的耐心等待!

4

2 回答 2

3

我认为您需要指定 GCC 4.8 可执行文件的绝对路径(因为 g++ 可能只是系统上 GCC 4.2 的符号链接)。

这是我在 Ubuntu 上的gcc-4.8.1 (Release).sublime-build

{
    "cmd": ["/opt/gcc-4.8.1/bin/g++", "${file}", "-o", "${file_path}/${file_base_name}", "-std=c++11", "-Wall", "-O3"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++, source.cxx",

    "variants":
    [
        {
            "name": "Run",
            "cmd": ["bash", "-c", "${file_path}/${file_base_name}"]
        }
    ]
}

请注意,我在“cmd”中传递了一个绝对路径。

于 2013-10-08T15:44:27.787 回答
0

正如 Tom Knapen 建议的那样,解决方案是包含较新 gcc 的完整路径。就我而言,使用 macports gcc,这是:

/opt/local/bin/g++-mp-4.8

所以 sublime-build 看起来像这样:

{
    "cmd": ["/opt/local/bin/g++-mp-4.8", "${file}", "-o", "${file_path}/${file_base_name}", "-std=c++11", "-Wall", "-O2"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++,
}
于 2013-10-08T17:29:12.563 回答