我在linux中使用sublime我正在尝试使用从文件而不是STDIN获取的INPUT直接从sublime编译和运行我的c ++程序。 请帮助我在sublime build-file中编写代码 我得到了这个代码,但它不工作我认为它的Windows不适用于linux:
{
"cmd" : ["g++", "$file_name", "-o", "${file_base_name}.exe"],
"selector" : "source.c",
"shell":true,
"working_dir" : "$file_path",
"variants": [
{
"cmd": ["${file_base_name}" , "<" , "input.txt"],
"shell": true,
"name": "Run",
"working_dir" : "$file_path"
}
]
}
答案 0 :(得分:3)
这是需要在sublime的构建系统中编写的最终代码,用于编译和运行从文件中获取输入。
{
"cmd": ["g++ -Wall ${file} -o ${file_base_name}"],
"working_dir": "${file_path}",
"selector": "source.c++",
"shell": true,
"working_dir" : "$file_path",
"variants": [
{
"cmd": [ "${file_path}/${file_base_name}<input.txt"],
"shell": true,
"name": "Run",
"working_dir" : "$file_path"
}
]
}
非常感谢MattDMo。
答案 1 :(得分:1)
我怀疑它不起作用的原因是因为g++
正在创建.exe
文件,而构建系统只查找source.c
范围,而您的代码可能是{{ 1}}。将前两行更改为以下内容:
source.c++
你应该全力以赴。
答案 2 :(得分:1)
我只需添加一个配置,用于从文件加载输入并在Sublime控制台中显示输出(“Run in”)或将输出发送到其他文件(“Run in out”)。也许有人会发现它很有用。 (适用于Windows和Ubuntu)
{
"shell_cmd": "g++ \"${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 in",
"shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\" <$file_base_name.in"
},
{
"name": "Run in out",
"shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\" <$file_base_name.in >$file_base_name.txt"
}
]
}