2016-10-24 2 views
0

ich ausführbare Datei von Sublime Text 3 zu laufen versuchte, nachdem er erfolgreich mit C++ 11-Build-System gebaut wurde, bekam aber den Fehler:C++ 11 Build-System zu arbeiten, aber nicht ausführbare Datei

[WinError 2] Das System kann die angegebene Datei nicht finden [cmd: ['bash', '-c', 'g ++ -std = C++ 0x' C: \ Benutzer \ FTP-RSky \ Desktop \ RSky \ rect \ test_g ++ 11.cpp '-o' C: \ Benutzer \ FTP-RSky \ Desktop \ Rsky \ rect/test_g ++ 11 '& & xterm -e bash -c' C: \ Benutzer \ FTP-RSky \ Desktop \ RSky \ rect/test_g ++ 11; read '"]] [Verzeichnis: C: \ Benutzer \ FTP-RSky \ Desktop \ RSky \ rect] [Pfad: C: \ Programme \ Processing-3.2.1; C: \ WINDOWS \ system32; C: \ WINDOWS; C: \ WINDOWS \ System32 \ Wbem; C: \ WINDOWS \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Programme (x86) \ Skype \ Phone \; C: \ Programme \ dotnet \; C: \ Programme \ Microsoft SQL Server \ 130 \ Tools \ Binn \; C : \ Programme (X 86) \ Microsoft SQL Server \ 110 \ DTS \ Binn \ C: \ Programme (X 86) \ Microsoft SQL Server \ 120 \ DTS \ Binn \; C: \ Programme (X 86) \ Microsoft SQL Server \ 130 \ DTS \ Binn \ C: \ Programme (x86) \ Windows-Kits \ 8.1 \ Windows-Leistungstoolkit \; C: \ Programme (x86) \ CodeBlocks \ MinGW \ bin; C: \ Programme \ Java \ jdk1.8.0_73 \ bin \ lib; C: \ Programme \ Java \ jdk1.8.0_73 \ bin] [Finished]

So habe ich drei Build-System in Sublime Text 3:

1. C++ Build und Run perfekt gut !!!

2. C++ 11 Build, aber nicht ausgeführt. meine C++ 11.sublime-Build-Datei:

{ 

"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 ++ baut nicht & Run. [WinError 2] Das System kann die angegebene Datei nicht finden [cmd: meine C++ Datei 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}'"] 
    } 
] 
} 

Es gibt einen Weg moderne C++ 11 & 14 Versionen zu erstellen und auszuführen in Sublime Text 3 als eine normale C++ Ausgabe ohne Probleme?Oder vermisse ich etwas?

+0

Vorausgesetzt, der Build, der funktioniert, ist derjenige, der in Sublime integriert ist, derjenige, der funktioniert, das Problem ist wahrscheinlich, dass 'bash' nicht in Ihrem Pfad ist (das ist, was der Fehler Ihnen sagt). Der eingebaute Build für C++ ruft 'g ++' direkt auf. Sie sollten es wahrscheinlich nur so machen, da Sie wissen, dass es bereits funktioniert. – OdatNurd

Antwort

0

Wenn Sie Bash unter Ubuntu unter Windows verwenden, müssen Sie POSIX-Pfade anstelle von Windows-Pfaden verwenden. Als Beispiel übersetzt der Windows-Pfad c:\Users\me\Desktop\My Project\source.cpp in den POSIX-Pfad /mnt/c/users/me/Desktop/My Project/source.cpp.

Sofern Sie diese Pfade in Ihrer Datei .sublime-build nicht fest codieren möchten, müssen Sie möglicherweise ein Skript (z. B. Batch) erstellen, das dies verarbeitet und das in Ihrer Builddatei aufruft. Diese example script ist ein guter Ausgangspunkt.

+0

Schließlich funktioniert es einwandfrei: { "shell_cmd": "g ++ -std = C++ 14" $ {file} \ "-o \" $ {Dateipfad}/$ {file_base_name} \ "&& \" $ { file_path}/$ {file_base_name} \ "", "file_regex": "^ (.. [^:] *): ([0-9] +):? ([0-9] +)?:? (. *) $ ", " working_dir ":" $ {dateipfad} ", " selector ":" source.c, source.C++ " "Varianten": [ \t { "name": "Run", "shell_cmd": "g ++ -std = C++ 14 \" $ {file} \" -o \ "$ {file_path}/$ {file_base_name} \ "&& \" $ {file_path}/$ {file_base_name} \ " } ] } – Alan

+0

Ah, es war nicht klar aus Ihrer Frage, dass Sie ein natives Win32 verwenden 'g ++', deshalb dachte ich an [Bash unter Ubuntu unter Windows] (https://msdn.microsoft.com/en-us/commandline/wsl/about) – idleberg

Verwandte Themen