2014-09-24 79 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" 
    } 
] 
} 
相關問題