2016-10-24 44 views
0

我試圖逃避崇高的文本3後,它已成功建立與C++ 11的構建系統的可執行文件,但得到的錯誤:C++ 11編譯系統的工作,但不能運行可執行文件

[WinError 2]系統找不到指定的文件[cmd:['bash','-c','g ++ -std = C++ 0x'C:\ Users \ FTP-RSky \ Desktop \ RSky \ rect \ test_g ++ 11.cpp'-o'C:\ Users \ FTP-RSky \ Desktop \ RSky \ rect/test_g ++ 11'& & xterm -e bash -c'C:\ Users \ FTP-RSky \ Desktop \ RSky \ rect/test_g ++ 11; read'「]] [dir:C:\ Users \ FTP-RSky \ Desktop \ RSky \ rect] [path:C:\ Program Files \ Processing-3.2.1; C:\ WINDOWS \ SYSTEM32; C:\ WINDOWS; C:\ Windows \ System32下\ WBEM; C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \; C:\ Program Files(x86)\ Skype \ Phone \; C:\ Program Files \ dotnet \; C:\ Program Files \ Microsoft SQL Server \ 130 \ Tools \ Binn \ :\ Program Files(x86)\ Microsoft SQL Server \ 110 \ DTS \ Binn \; C:\ Program Files(x86)\ Microsoft SQL Server \ 120 \ DTS \ Binn \; C:\ Program Files(x86)\ Microsoft SQL Server \ 130 \ DTS \ Binn \; C:\ Program Files(x86)\ Windows Kits \ 8.1 \ Windows Performance Toolkit \; C:\ Program Files(x86)\ CodeBlocks \ MinGW \ bin; C:\ Program Files \ Java \ jdk1.8.0_73 \ BIN \ lib中; C:\ Program Files文件\的Java \ jdk1.8.0_73 \ BIN] [完成]

所以我有崇高的文本3三種內建的系統:

1. C++編譯並運行完美!

2. C++ 11 Build但不運行。我的C++ 11.sublime-build文件:

{ 

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

] 
} 

3 C++ 14不會生成&運行。 [WinError 2]系統找不到指定[CMD文件:我的C++ 14.sublime-build文件:

{ 

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

還有就是要建立和運行現代C++ 11 & 14版本的方式在Sublime Text 3中作爲常規的C++輸出沒有問題?還是我想念什麼?

+0

假設構建工作是建立在Sublime中的那個工作的,問題可能是'bash'不在你的路徑中(這就是錯誤告訴你的)。內置的C++版本直接調用'g ++'。你應該這樣做,因爲你知道它已經起作用了。 – OdatNurd

回答

0

在Windows上的Ubuntu上使用Bash時,必須使用POSIX路徑而不是Windows路徑。例如,Windows路徑c:\Users\me\Desktop\My Project\source.cpp轉換爲POSIX路徑/mnt/c/users/me/Desktop/My Project/source.cpp

除非您想在.sublime-build文件中對這些路徑進行硬編碼,否則您可能必須創建一個腳本(例如Batch)來處理這個腳本,並在您的構建文件中調用該腳本。這example script是一個很好的起點。

+0

最後,完美地工作:{0} {0} {「shell_cmd」:「g ++ -std = C++ 14 \」$ {file} \「-o \」$ {file_path}/$ {file_base_name} \「&& \」$ { file_path}/$ {file_base_name} \「」, 「file_regex」:「^(.. [^:] *):([0-9] +):?([0-9] +)?:?( 。*)$「, 」working_dir「:」$ {file_path}「, 」selector「:」source.c,source。C++ 「 」變體「: [ \t { 」名稱「: 」運行「, 」shell_cmd「: 」克++ -std = C++ 14 \「 $ {文件} \」 -o \「$ {file_path}/$ {file_base_name} \「&& \」$ {file_path}/$ {file_base_name} \「」 } ] } – Alan

+0

啊,從您的問題中不清楚您使用的是本機Win32 'g ++',這就是爲什麼我想[在Windows上的Ubuntu上的Bash](https://msdn.microsoft.com/en-us/commandline/wsl/about) – idleberg

相關問題