Vscode-code-runner: C / C ++: impossible de compiler ou d'exécuter lorsque le chemin du fichier source a un ou plusieurs espaces

Créé le 1 févr. 2018  ·  23Commentaires  ·  Source: formulahendry/vscode-code-runner

J'ai créé un fichier
D:\Program\USACO\[C2, S3.2] Magic Square.cpp

Mais quand je compile,
des erreurs se sont produites:

[Running] cd "d:\Program\USACO\" && g++ [C2, S3.2] Magic Square.cpp -o [C2, S3.2] Magic Square && "d:\Program\USACO\"[C2, S3.2] Magic Square
g++: error: [C2,: No such file or directory
g++: error: S3.2]: No such file or directory
g++: error: Magic: No such file or directory
g++: error: Square.cpp: No such file or directory
g++: error: S3.2]: No such file or directory
g++: error: Magic: No such file or directory
g++: error: Square: No such file or directory
g++: fatal error: no input files
compilation terminated.

Système d'exploitation: Win7 SP1
VSCode: 1.19.3
Coureur: 0.8.7 5beeedfa674b330537448162dfe9c2330c7eda50

bug

Commentaire le plus utile

Si vous utilisez Windows, essayez de configurer des paramètres comme celui-ci:

"code-runner.executorMap": {
    "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt.exe\" && & \"$dir$fileNameWithoutExt.exe\""
}

Faites attention au caractère supplémentaire '&' .

Si vous utilisez un système basé sur Unix, essayez ceci (je n'ai pas testé, mais je pense que cela fonctionnerait):

"code-runner.executorMap": {
    "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt\" && \"$dir$fileNameWithoutExt\""
}

Tous les 23 commentaires

Même problème.
Après avoir modifié la configuration comme suit:

"code-runner.executorMap": {
"cpp": "cd $ dir && g ++ \" $ fileName \ "-o \" $ fileNameWithoutExt \ "&& $ dir $ fileNameSansExt"}

Je peux exécuter les deux premières commandes avec succès, mais cela ne fonctionnera pas pour la dernière commande ($ dir $ fileNameWithoutExt).

Voici la sortie.
image

@Michany Essayez de changer $dir$fileNameWithoutExt en $fileNameWithoutExt ?

@ hanghang0702 désolé je suis en retard, @Michany vous avez oublié les caractères d'échappement, @formulahendry ce n'est pas le problème sur le système basé sur * nix avec lequel le fichier exécutable s'exécute ./"dir"filename,

"code-runner.executorMap": {
        "javascript": "node",
        "java": "cd $dir && javac \"$fileName\" && java \"./$fileNameWithoutExt\"",
        "c": "cd $dir && gcc \"$fileName\" -o \"$fileNameWithoutExt\" && \"./$fileNameWithoutExt\"",
        "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt\" && \"./$fileNameWithoutExt\"",
        "objective-c": "cd $dir && gcc -framework Cocoa \"$fileName\" -o \"$fileNameWithoutExt\" && \"./$fileNameWithoutExt\"",}

Je ne suis pas un utilisateur de Windows et je ne sais pas si cela fonctionnera sous Windows (vous devrez probablement ajuster / modifier certains caractères d'échappement ou quelque chose de similaire).
J'espère vraiment qu'ils le modifieront et le corrigeront dans la (les) version (s) à venir.

Même problème ici.

Quand j'exécute le code C dans le terminal bash. J'ai compris:
bash: cd: d: \ VscodeProjectC \ demo "&& gcc fichier1.c -o fichier1 && _d: VscodeProjectCdemo" file1_ : aucun fichier ou répertoire de ce type
De toute évidence, la dernière commande n'est pas reconnue correctement. Comment le réparer?

Bonjour!

J'ai le même problème sous Mac OS X. Une solution à ce bogue?
Si je renomme Example 1.cpp en Example1.cpp ou Example_1.cpp alors, cela fonctionne bien ...

Merci!

Si vous utilisez Windows, essayez de configurer des paramètres comme celui-ci:

"code-runner.executorMap": {
    "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt.exe\" && & \"$dir$fileNameWithoutExt.exe\""
}

Faites attention au caractère supplémentaire '&' .

Si vous utilisez un système basé sur Unix, essayez ceci (je n'ai pas testé, mais je pense que cela fonctionnerait):

"code-runner.executorMap": {
    "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt\" && \"$dir$fileNameWithoutExt\""
}

image

Bonjour, j'ai le même problème. J'utilise Windows, j'essaie d'exécuter un simple programme C ++, je n'ai d'espaces nulle part dans le chemin ou le nom du fichier.

[Running] cd "c:\Users\Guillaume\Desktop\" && g++ test.cpp -o test && "c:\Users\Guillaume\Desktop\"test
g++: error: test.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated.

Si je copie la commande telle quelle et la colle dans un cmd.exe, cela fonctionne sans problème: /

J'ai apporté des modifications comme suggéré par d'autres mais rien n'a fonctionné.

EDIT: Résolu! Voici comment, peut-être que cela aidera les autres:

"code-runner.executorMap": {
    "cpp": "cd $dir && g++ $dirWithoutTrailingSlash\\$fileName -o $fileNameWithoutExt && $fileNameWithoutExt"
}

Bonjour...
je ne peux pas trouver de code-runner, executorMap n'importe où
où exactement dois-je coller ce morceau de code ...
dans settings.json? ... cela n'a pas fonctionné de coller le code là-bas ... :(

Bonjour...
je ne peux pas trouver de code-runner, executorMap n'importe où
où exactement dois-je coller ce morceau de code ...
dans settings.json? ... cela n'a pas fonctionné de coller le code là-bas ... :(

Oui dans settings.json.

J'ai finalement utilisé cette commande à la place:

"cpp": "cd $dir ; g++ $fileName -o $fileNameWithoutExt.exe ; .\\$fileNameWithoutExt.exe"

Voici un extrait de mon settings.json:

    "c-cpp-compile-run.cpp-compiler": "C:\\MinGW\\bin",
    "window.zoomLevel": -1,
    "code-runner.executorMap": {
        //"javascript": "node",
        //"php": "C:\\php\\php.exe",
        //"python": "python",
        //"perl": "perl",
        //"ruby": "C:\\Ruby23-x64\\bin\\ruby.exe",
        //"go": "go run",
        //"html": "\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\"",
        //"java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
        //"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "cpp": "cd $dir ; g++ $fileName -o $fileNameWithoutExt.exe ; .\\$fileNameWithoutExt.exe"

    },
    "C_Cpp.default.cppStandard": "c++20",
    "C_Cpp.default.cStandard": "c11",

Je crois que j'ai aussi ce problème. Y a-t-il des plans pour le résoudre? Voici mes résultats:
$ cd "c:\Users\Jacob Armiger\Documents\cpp_files\" && g++ hello.cpp -o hello && "c:\Users\Jacob Armiger\Documents\cpp_files\"hello bash: cd: too many arguments

Bonjour, après avoir essayé beaucoup de temps, j'ai trouvé la solution, j'espère que cela aidera les autres

"cpp": "cd $ dir && g ++ \" $ fileName \ "-o \" $ fileNameSansExt \ "&&. \\" $ nomFichierSansExt \ "",

Bonjour, après avoir essayé beaucoup de temps, j'ai trouvé la solution, j'espère que cela aidera les autres

"cpp": "cd $ dir && g ++" $ fileName "-o" $ fileNameWithoutExt "&&. \" $ fileNameWithoutExt "",

Où ajouter cela ?? Dans le fichier settings.json en .vscode ?? ou ailleurs?

image

-> Ouais, vous devez copier cela sur votre settings.json (exactement dans votre carte exécuteur) sur vscode, je vais joindre une photo

Guys Windows!
Copiez simplement ce dernier dans votre fichier settings.json

J'ai fait beaucoup de recherches et cela fonctionnera sûrement

"code-runner.executorMap": {
    "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt\" && \"$fileNameWithoutExt\""
},

Si vous utilisez Windows, essayez de configurer des paramètres comme celui-ci:

"code-runner.executorMap": {
    "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt.exe\" && & \"$dir$fileNameWithoutExt.exe\""
}

Faites attention au caractère supplémentaire '&' .

Si vous utilisez un système basé sur Unix, essayez ceci (je n'ai pas testé, mais je pense que cela fonctionnerait):

"code-runner.executorMap": {
    "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt\" && \"$dir$fileNameWithoutExt\""
}

cela a fonctionné pour moi. Je suis maintenant capable de compiler et d'exécuter des fichiers c cpp et java ('&' n'est pas nécessaire en java si quelqu'un se demande)

Si vous utilisez Windows, essayez de configurer des paramètres comme celui-ci:

"code-runner.executorMap": {
    "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt.exe\" && & \"$dir$fileNameWithoutExt.exe\""
}

Faites attention au caractère supplémentaire '&' .

Si vous utilisez un système basé sur Unix, essayez ceci (je n'ai pas testé, mais je pense que cela fonctionnerait):

"code-runner.executorMap": {
    "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt\" && \"$dir$fileNameWithoutExt\""
}

Cette solution fonctionne !! Enfin, mon programme c pourrait être compilé et exécuté. Merci!

Cela a vraiment aidé, merci!
Je suis sous Windows

S'IL VOUS PLAÎT AIDE !!! 😭 J'obtiens la même erreur.

{
    "atomKeymap.promptV3Features": true,
    "editor.multiCursorModifier": "ctrlCmd",
    "editor.formatOnPaste": true,
    "python.pythonPath": "C:\\Users\\ABHISHEK\\anaconda3\\python.exe",
    "java.home": "C:\\Program Files\\Java\\jdk-12.0.2",
    "java.help.firstView": "gettingStarted",
    "workbench.iconTheme": "vscode-icons",
    "editor.suggestSelection": "first",
    "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
    "java.semanticHighlighting.enabled": true,
    "files.exclude": {
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true
    },
    "python.jediEnabled": false,
    "python.dataScience.sendSelectionToInteractiveWindow": true,
    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
    "python.languageServer": "Microsoft",
    "files.associations": {
        "*.cpp": "cpp"
    },
    "C_Cpp.updateChannel": "Insiders",
    "code-runner.executorMap": {


        "javascript": "node",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt.exe\" && & \"$dir$fileNameWithoutExt.exe\"",
        "objective-c": "cd $dir && gcc -framework Cocoa $fileName -o $fileNameWithoutExt && $dir $fileNameWithoutExt",
        "php": "php",
        "python": "python -u",
        "perl": "perl",
        "perl6": "perl6",
        "ruby": "ruby",
        "go": "go run",
        "lua": "lua",
        "groovy": "groovy",
        "powershell": "powershell -ExecutionPolicy ByPass -File",
        "bat": "cmd /c",
        "shellscript": "bash",
        "fsharp": "fsi",
        "csharp": "scriptcs",
        "vbscript": "cscript //Nologo",
        "typescript": "ts-node",
        "coffeescript": "coffee",
        "scala": "scala",
        "swift": "swift",
        "julia": "julia",
        "crystal": "crystal",
        "ocaml": "ocaml",
        "r": "Rscript",
        "applescript": "osascript",
        "clojure": "lein exec",
        "haxe": "haxe --cwd $dirWithoutTrailingSlash --run $fileNameWithoutExt",
        "rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt",
        "racket": "racket",
        "scheme": "csi -script",
        "ahk": "autohotkey",
        "autoit": "autoit3",
        "dart": "dart",
        "pascal": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt",
        "d": "cd $dir && dmd $fileName && $dir$fileNameWithoutExt",
        "haskell": "runhaskell",
        "nim": "nim compile --verbosity:0 --hints:off --run",
        "lisp": "sbcl --script",
        "kit": "kitc --run",
        "v": "v run",
        "sass": "sass --style expanded",
        "scss": "scss --style expanded",
        "less": "cd $dir && lessc $fileName $fileNameWithoutExt.css"
    },
    "window.zoomLevel": 0,
    "files.autoSave": "onFocusChange",
    "diffEditor.ignoreTrimWhitespace": false,
    "[cpp]": {

        "editor.wordBasedSuggestions": false,
        "editor.suggest.insertMode": "replace",
        "editor.semanticHighlighting.enabled": true
    },
    "code-runner.runInTerminal": true,
    "code-runner.saveAllFilesBeforeRun": true,
    "settingsSync.ignoredSettings": [
        "-java.configuration.runtimes"
    ],
    "liveServer.settings.donotShowInfoMsg": true,
    "java.refactor.renameFromFileExplorer": "autoApply",
    "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[json]": {
        "editor.defaultFormatter": "vscode.json-language-features"
    },
    "eslint.codeAction.showDocumentation": {

        "enable": true
    },
    "git.autofetch": true,
    "vsicons.dontShowNewVersionMessage": true,

}

Ceci et j'obtiens toujours la même erreur.

2020-11-04_020713

Et mes variables d'environnement:

2020-11-04_020930

Et juste au cas où quelqu'un aurait des doutes sur mes fichiers et autres ...

2020-11-04_021239
@formulahendry @HeyJayant @ kaushik-rishi

@ tripathi-abhishek utilise ceci

Au cas où vous rencontriez des problèmes avec une erreur bash comme "bash: cd: trop d'arguments"
2020-11-07 (5)

Fixé par: -
Accédez aux paramètres de code de Visual Studio pour code runner et remplacez la paire valeur / clé cpp dans code-runner.executorMap par ce qui suit: -
"code-runner.executorMap": {
"cpp": "g ++ $ fileName -o $ fileNameWithoutExt.exe && './$fileNameWithoutExt.exe'"
}

Capture d'écran S
remplacez votre paire valeur clé cpp par le code mentionné ci-dessous dans "code-runner.executorMap" comme:
2020-11-07 (3)

@ VipulKhandelwal1999 merci cela a fonctionné!

image

@ushakhanal a lu mes commentaires. J'ai déjà expliqué ce qu'il faut faire en cas d'erreur "trop ​​d'arguments".

Cette page vous a été utile?
0 / 5 - 0 notes