Недавно я хотел попробовать Visual Studio Code для программирования на C ++. Так как я довольно новичок в C ++ и программировании в целом, я не хотел делать утомительный процесс установки для запуска программ. Поэтому я установил расширение «Code Runner», которое запускает файл cpp в терминале. Все шло отлично, пока я не захотел запускать файлы cpp с пробелами в них. После некоторых поисков я обнаружил, что расширение использует какой-то пакетный файл, чтобы изменить каталог терминала, скомпилировать его и запустить выходной файл. Когда в имени были пробелы, две части имени интерпретировались как отдельные команды. Это настройка code-runner.executorMap
в настройках кода VS:
"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 && $dir$fileNameWithoutExt",
"objective-c": "cd $dir && gcc -framework Cocoa $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
Вывод для этого был:
PS D:\> cd "d:\" ; if ($?) { g++ Test 1.cpp -o Test 1 } ; if ($?) { .\Test 1 }
g++.exe: error: Test: No such file or directory
g++.exe: error: 1.cpp: No such file or directory
g++.exe: error: 1: No such file or directory
Мне удалось решить некоторые проблемы, заключив двойные кавычки в имя и каталог.
"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\"",}
Вывод был:
PS D:\> cd "d:\" ; if ($?) { g++ "Test 1.cpp" -o "Test 1" } ; if ($?) { "./Test 1" }
./Test
Команда "cd" и команда "g ++", казалось, работали, но часть, которая фактически выполняет программу, работала со сбоями. Он интерпретировал имя файла в двойных кавычках как строку и просто отображал его как есть, а не запускал его. Я искал в интернете решение для запуска файлов .exe с пробелами в имени, но не смог их найти. Извините, если тема не связана или это связано с моей некомпетентностью, так как я очень новичок в программировании.