无法使用Sublime Text 2构建C ++程序

时间:2012-07-14 15:45:49

标签: c++ build sublimetext sublimetext2

我想很多人都在使用或习惯使用Sublime Text 2编辑器。我有一个奇怪的错误:无法构建C ++程序。

我的 C++.sublime-build

{
    "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"],
    "working_dir": "${file_path}",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "selector": "source.c, source.c++",

    "variants":
    [
        {
            "name": "Run",
            "cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
        }
    ]
}

我发现当cmd数组包含任何替换表达式(如${file}$file)时,构建不会启动。否则就会开始。

编译器没关系。当我尝试"cmd": ["notify-osd", "$file"]时,它没有用;但"cmd": ["notify-osd", "sometexthere"]有效。

手工编译工作正确。

我的节目:

#include <iostream>

int main() {
    std::cout << "Hello World";
}

我使用Ubuntu 12.04,32bit。 Sublime Editor的版本:2.0.1。

如果不是我可以问这个问题的地方,请告诉我什么是正确的。

3 个答案:

答案 0 :(得分:7)

编辑你的C ++。sublime-build文件....就像一个魅力。

{
    "cmd": ["g++", "-Wall", "-Wextra", "-pedantic", "-std=c++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": ["bash", "-c", "g++ -Wall -Wextra -pedantic -std=c++11 '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
        }
    ]
}

答案 1 :(得分:1)

我可以为此问题提供解决方法:使用makefile。 Sublime Text 2可以运行makefile来为你编译c ++。

通过在Sublime论坛(http://www.sublimetext.com/forum/)中提问,您将更有可能更好地回答这个问题。 即使在那里,他们也可能有兴趣知道“如何”它不起作用(即如果在按下“Build”时没有任何反应,你可能想要指定)。

答案 2 :(得分:0)

我花了几个小时来完成Sublime Text的C ++编译工作,而且我还有一些小问题(比如Sublime Text无法在externe窗口/控制台中执行该程序)。

这是我的配置文件:

{
"cmd": ["C:\\MinGW\\bin\\mingw32-g++.exe", "-Wall", "-time", "$file", "-o", "$file_base_name"],

"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",

"working_dir": "${project_path:${folder}}",

"selector": "source.c",

"shell": true,

"encoding": "latin1"

}

(如果编译器不起作用,请确保将编码更改为utf8)

另外,将MinGW的bin文件夹添加到OS的Path变量中(在开始菜单中查找'environment variable',然后查找Path变量)。