我想很多人都在使用或习惯使用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。
如果不是我可以问这个问题的地方,请告诉我什么是正确的。
答案 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变量)。