我想将Sublime Text(2 / 3alpha)用于简单的c ++程序,但我不能使用c ++ 11。我尝试更改构建文件,但添加-std = c ++ 11没有帮助。我确实安装了macports的GCC4.8(否则它可以正常工作),但显然sublime文本正在使用4.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++,
}