使Sublime Text在Mac上使用gcc4.8

时间:2013-10-07 21:19:22

标签: c++ macos c++11 sublimetext2 macports

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

2 个答案:

答案 0 :(得分:3)

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

这是我在Ubuntu上的 gcc-4.8.1(发布).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'中传递了绝对路径。

答案 1 :(得分: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++,
}