2014-09-24 45 views
1

我在linux中使用崇高我试图编译和运行我的c + +程序从崇高直接与从文件而不是STDIN INPUT。
请帮我把代码写在崇高的构建文件中。
我得到这个代码,但它不工作,我认为它的Windows不适用于Linux:Sublime构建Linux系统的c + +允许从文件输入

{ 
    "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" 
     } 
    ] 
} 

回答

3

这是一个需要编写高级编译系统编译运行的最终代码。

{ 
    "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

我怀疑它不工作的原因是因为g++正在创建一个.exe文件,构建系统只找source.c范围,而您的代码可能是source.c++。将前两行更改为以下内容:

"cmd" : ["g++", "$file", "-o", "${file_path}/${file_base_name}"], 
"selector" : "source.c, source.c++", 

并且您应该全部设置。

+0

我得到这个在控制台: G ++:致命错误:没有输入文件 编译终止。 [完成于0.0s,退出代码4] [cmd:['g ++','main2.cpp','-o','main2']] [dir:/ home/shikhar/CP/work] [路径:/ usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin:/ usr/games:/ usr/local/games] – 2014-09-24 15:50:32

+0

@ sv_jan5发生了什么如果你从终端运行相同的命令?切换到'〜/ CP/work'并运行'g ++ main2.cpp -o main2'。 – MattDMo 2014-09-24 15:52:51

+0

终端中的这个命令给出名为'main2'的可执行文件。编译器没有问题。 – 2014-09-25 03:23:48

1

我只是添加一个配置,我用来从文件加载输入并在Sublime控制台(“运行”)中显示输出或将输出发送到其他文件(“运行输出”)。也许有人会觉得它有用。 (适用于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" 
    } 
] 
} 
相关问题