C ++ 코드를 컴파일하기 위해 Visual Studio Code를 어떻게 설정합니까?


222

Microsoft의 Visual Studio Code 편집기는 훌륭하지만 C ++ 프로젝트 빌드를위한 기본 지원은 없습니다.

이를 위해 어떻게 구성합니까?


12
Linux에서 C ++ 코드를 컴파일하는 데는 많은 답변이 있지만 Windows는 어떻습니까?
Charles Milette

5
이러한 기본 사항은 있지만 Windows 에서이 작업을 수행하는 데 유용한 리소스는 없습니다. 그리고 ms cpptools 확장은 그것에 대해 이야기하지 않습니다. 나는 그것이 당신의 좌절감을 더하는 것 같아요. 아무것도하지 않습니다.
Kshitij

아무도 해결책을 찾았습니까? 컴파일 할 수는 있지만 VSCode에서 C / C ++를 디버깅 할 수는 없습니다. 기사에서는 디버깅이 Linux에서만 지원된다고 말합니다. 또한 최근 에이 스레드를 동일하게 만들었습니다 . 어떤 도움을 주셔서 감사합니다 ...
Mahesha999

답변:


133

C ++ 코드를 컴파일하고 실행하는 훨씬 쉬운 방법이 있으며 구성이 필요하지 않습니다.

  1. Code Runner Extension 설치
  2. 텍스트 편집기에서 C ++ 코드 파일을 연 다음 바로 가기를 사용 Ctrl+Alt+N하거나를 누른 F1다음 선택 / 유형을 Run Code클릭하거나 텍스트 편집기를 마우스 오른쪽 단추로 클릭 한 다음 Run Code상황에 맞는 메뉴 를 클릭 하면 코드가 컴파일되어 실행되고 출력이 출력 창.

또한 원하는 다른 C ++ 컴파일러를 사용하여 settings.json에서 구성을 업데이트 할 수 있습니다 .C ++의 기본 구성은 다음과 같습니다.

"code-runner.executorMap": {
    "cpp": "g++ $fullFileName && ./a.out"
}

4
내 출력 창이에 붙어 있습니다 running blablabla. 프롬프트도없고 아무것도 없습니다. 코드 실행을 어떻게 중지합니까?
히치 가야 하치만

11
코드 실행을 중지하려면을 사용하십시오 Ctrl+Alt+M. stdin을 사용하여 데이터를 읽으려면 File-> Preference-> Settings로 이동 하여 설정할 수 "code-runner.runInTerminal": true있습니다. 자세한 내용은 github.com/formulahendry/vscode-code-runner/issues/91
Jun Han

1
출력 창에서 실행하면 터미널 입력이 방지됩니다. runInTerminal은 필요한 것 같습니다 ...
앤드류 울프

오류 발생- "오류 : #include의 빈 파일 이름"
gaurav

9
홍보하려는 확장 프로그램의 작성자임을 공개해야합니다.
Codebling

86

빌드 작업은 프로젝트마다 다릅니다. 새 프로젝트를 만들려면 Visual Studio Code에서 디렉토리를 엽니 다.

지침에 따라 여기에 언론, Ctrl+ Shift+ P, 유형 Configure Tasks, 그것을를 선택하고 Enter 키를 누릅니다 Enter.

tasks.json 파일이 열립니다. 다음 빌드 스크립트를 파일에 붙여넣고 저장하십시오.

{
    "version": "0.1.0",
    "command": "make",
    "isShellCommand": true,
    "tasks": [
        {
            "taskName": "Makefile",

            // Make this the default build command.
            "isBuildCommand": true,

            // Show the output window only if unrecognized errors occur.
            "showOutput": "always",

            // Pass 'all' as the build target
            "args": ["all"],

            // Use the standard less compilation problem matcher.
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": ["relative", "${workspaceRoot}"],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        }
    ]
}

이제 파일환경 설정키보드 단축키 메뉴로 이동 하여 빌드 작업에 다음 키 바인딩을 추가하십시오.

// Place your key bindings in this file to overwrite the defaults
[
    { "key": "f8",          "command": "workbench.action.tasks.build" }
]

이제 F8Makefile 을 누르면 에디터에서 오류가 밑줄로 나타납니다.


8
경고-이 파일의 형식이 변경되어 더 이상 올바르지 않습니다. 참조 : go.microsoft.com/fwlink/?LinkId=733558
중단 점

기본 키는 ctrl+alt+b빌드 작업을위한 것입니다.
danger89

터미널에서 다음 / 이전 오류 넘어갈 명령 또는 바인딩이 있습니까? "문제점"창에 관련이없는 여러 문제가 있습니다 (VS 코드가 실제로 프로젝트를 빌드하는 방법을 알지 못하기 때문에 프로젝트를 가르치기에는 너무 복잡 할 것입니다). 그러나 "터미널"은 빌드 후 유용한 오류가 가득합니다. "터미널"의 다음 오류로 넘어가려면 바로 가기 키가 필요합니다.
Dan L

47

새로운 2.0.0 tasks.json 버전의 makefile 태스크 예제.

아래의 발췌 부분에서 주석이 도움이되기를 바랍니다.

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "<TASK_NAME>",
            "type": "shell",
            "command": "make",
            // use options.cwd property if the Makefile is not in the project root ${workspaceRoot} dir
            "options": {
                "cwd": "${workspaceRoot}/<DIR_WITH_MAKEFILE>"
            },
            // start the build without prompting for task selection, use "group": "build" otherwise
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "shared"
            },
            // arg passing example: in this case is executed make QUIET=0
            "args": ["QUIET=0"],
            // Use the standard less compilation problem matcher.
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": ["absolute"],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        }
    ]
}

2
2018 년 11 월 여전히 최신 상태입니다. 감사합니다!
TheIntern

이것을 어느 디렉토리에 두었습니까? 루트, ".vs"또는 ".vscode"? 아마도 파일이 개정 제어에 들어가면 강력하게 권장되는 작업 공간 루트가 유일한 권장 위치이지만 작동시키지 못했습니다.
중단 점

내가 아는 한, 현재 유일하게 유효한 장소는 .vscode입니다. 자식 수정 제어의 경우 .gitignore와 같은 패턴 을 사용할 수 !.vscode/tasks.json있습니다.
attdona

14

다음은 C ++에 VS를 구성하는 방법입니다.

적절한 경로를 MinGW가 설치된 위치로 변경하십시오.

launch.json

{
   "version": "0.2.0",
   "configurations": [
       {
           "name": "C++ Launch (GDB)",                
           "type": "cppdbg",                         
           "request": "launch",                        
           "targetArchitecture": "x86",                
           "program": "${workspaceRoot}\\${fileBasename}.exe",                 
           "miDebuggerPath":"C:\\mingw-w64\\bin\\gdb.exe", 
           "args": [],     
           "stopAtEntry": false,                  
           "cwd": "${workspaceRoot}",                  
           "externalConsole": true,                  
           "preLaunchTask": "g++"                    
           }
   ]
}

tasks.json

{
    "version": "0.1.0",
    "command": "g++",
    "args": ["-g","-std=c++11","${file}","-o","${workspaceRoot}\\${fileBasename}.exe"],
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceRoot}",
                "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++",
                "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/x86_64-w64-mingw32",
                "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/backward",
                "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include",
                "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/tr1",
                "C:/mingw-w64/x86_64-w64-mingw32/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "__GNUC__=6",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "intelliSenseMode": "msvc-x64",
            "browse": {
                "path": [
                    "${workspaceRoot}",
                    "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++",
                    "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/x86_64-w64-mingw32",
                    "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/backward",
                    "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include",
                    "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/tr1",
                    "C:/mingw-w64/x86_64-w64-mingw32/include"
                ]
            },
            "limitSymbolsToIncludedHeaders": true,
            "databaseFilename": ""
        }
    ],
    "version": 3
}

참고:

  1. VS 코드 용 C / C ++

  2. c_cpp_properties.json 템플릿


13
어쩌면 당신은 또한 당신의 설정이 무엇을하고 있는지를 설명하고 싶을뿐 아니라 붙여 넣기를 복사하는 것만이 아니라
uitty400

2
설정을 설명하기가 어렵습니다.
Li Kui

적절한 경로를 MinGW가 설치된 위치로 변경하십시오.
Anthony Lei

"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include"
Lorenz의

10

VS 코드에서 C ++ 프로젝트를 빌드 / 실행하려면 tasks 를 수동으로 구성해야합니다. 작업 공간 폴더의 .vscode 폴더에 있는 파일을 합니다. 열려면 tasks.json 키를 눌러 Ctrl + Shift + P , 및 입력 구성 작업을 하고 눌러 입력 , 그것은 당신을 데려 갈 것이다 tasks.json

여기에 내가 나의 제공하고 tasks.json의 파일이 더 이해하기 위해 몇 가지 의견 파일을, 그것은 구성하기위한 참고 자료로 사용할 수 있습니다 tasks.json을 , 나는 그것이 도움이 될 것입니다 희망

tasks.json

{
    "version": "2.0.0",

    "tasks": [

        {
            "label": "build & run",     //It's name of the task , you can have several tasks 
            "type": "shell",    //type can be either 'shell' or 'process' , more details will be given below
            "command": "g++",   
            "args": [
                "-g",   //gnu debugging flag , only necessary if you want to perform debugging on file  
                "${file}",  //${file} gives full path of the file
                "-o",   
                "${workspaceFolder}\\build\\${fileBasenameNoExtension}",    //output file name
                "&&",   //to join building and running of the file
                "${workspaceFolder}\\build\\${fileBasenameNoExtension}"
            ],
            "group": {
                "kind": "build",    //defines to which group the task belongs
                "isDefault": true
            },
            "presentation": {   //Explained in detail below
                "echo": false,
                "reveal": "always",
                "focus": true,
                "panel": "shared",
                "clear": false,
                "showReuseMessage": false
            },
            "problemMatcher": "$gcc"
        },

    ]
}

이제 VS 코드 작업 설명서 에서 직접 언급

유형 속성 설명 :

  • type : 작업 유형입니다. 사용자 지정 작업의 경우 셸 또는 프로세스 일 수 있습니다. shell이 ​​지정되면 명령은 쉘 명령 (예 : bash, cmd 또는 PowerShell)으로 해석됩니다. 프로세스가 지정된 경우 명령은 실행할 프로세스로 해석됩니다.

프리젠 테이션을 사용하여 터미널의 동작을 제어 할 수 있습니다 tasks.json 속성을 . 다음과 같은 속성을 제공합니다.

  • reveal : Integrated Terminal 패널을 앞으로 가져올 지 여부를 제어합니다. 유효한 값은 다음과 같습니다.

    • always- 패널은 항상 전면으로 가져옵니다. 이것이 기본값입니다
    • never- 사용자는보기> 터미널 명령 (Ctrl +`)을 사용하여 터미널 패널을 명시 적으로 전면으로 가져와야합니다.
    • silent- 출력에서 오류 및 경고가 스캔되지 않은 경우에만 터미널 패널이 전면으로 가져옵니다.
  • 초점 : 터미널이 입력 포커스를 받고 있는지 여부를 제어합니다. 기본값은 false입니다.

  • 에코 : 실행 된 명령이 터미널에서 에코되는지 여부를 제어합니다. 기본값은 true입니다.
  • showReuseMessage : "작업에 의해 터미널이 재사용 될 것입니다. 닫으려면 아무 키나 누르십시오"메시지를 표시할지 여부를 제어합니다.
  • 패널 : 터미널 인스턴스가 작업 실행간에 공유되는지 여부를 제어합니다. 가능한 값은 다음과 같습니다.
    • 공유 : 터미널이 공유되고 다른 작업 실행의 출력이 동일한 터미널에 추가됩니다.
    • 전용 : 터미널이 특정 작업 전용입니다. 해당 작업이 다시 실행되면 터미널이 재사용됩니다. 그러나 다른 작업의 출력은 다른 터미널에 표시됩니다.
    • new : 해당 작업을 실행할 때마다 새로운 깨끗한 터미널을 사용합니다.
  • clear : 이 작업을 실행하기 전에 터미널을 지 울지 여부를 제어합니다. 기본값은 false입니다.

9

명확한 문서가 부족함에 대한 좌절감없이 github에서 Mac 프로젝트를 만들었습니다 (빌드 및 디버깅 모두).

vscode-mac-c-example

XCode 및 VSCode Microsoft cpptools 확장자가 필요합니다.

Microsoft가 적절한 문서를 먼저 작성하지 않는 한 Windows와 Linux에서 동일한 작업을 수행하려고합니다.


8

우선, 확장 (Ctrl + Shift + X)으로 이동하여 2 개의 확장을 설치하십시오.

  1. 코드 러너
  2. C / C ++

그런 다음 VS 코드를 다시로드하고 프로그램이 출력 터미널에서 실행되는 오른쪽 모서리의 상단에있는 재생 버튼을 선택하십시오. Ctrl + Alt + N으로 출력을 볼 수 있습니다. 다른 기능을 변경하려면 사용자 설정으로 이동하십시오. 여기에 이미지 설명을 입력하십시오


이것은 이전 답변의 반복입니다.
JDługosz

5

프로젝트에 CMake 구성이 있으면 VSCode를 설정하는 것이 매우 간단 tasks.json합니다. 예를 들어 다음과 같이 설정하십시오 .

{
    "version": "0.1.0",
    "command": "sh",
    "isShellCommand": true,
    "args": ["-c"],
    "showOutput": "always",
    "suppressTaskName": true,
    "options": {
        "cwd": "${workspaceRoot}/build"
    },
    "tasks": [
        {
            "taskName": "cmake",
            "args": ["cmake ."]
        },
        {
            "taskName": "make",
            "args" : ["make"],
            "isBuildCommand": true,
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": "absolute",
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        }
    ]
}

이는 buildCMake 구성이있는 작업 공간의 루트에 폴더가 있다고 가정 합니다.

VScode에 "CMake build"명령을 추가 하는 CMake 통합 확장 기능 도 있습니다 .

추신! 을 problemMatcher위한 설정입니다 clang-builds. 사용하려면 GCC 난 당신이 변경해야 할 생각 fileLocationrelative,하지만 난 이것을 테스트하지 않았습니다.


5

다음은 g ++ 컴파일러를 사용하여 C ++ 용 VS를 구성하는 방법이며 디버깅 옵션을 포함하여 훌륭하게 작동합니다.

tasks.json 파일

{
    "version": "0.1.0",
    "command": "g++",
    "isShellCommand": true,
    // compiles and links with debugger information
    "args": ["-g", "-o", "hello.exe", "hello.cpp"],
    // without debugger information
    // "args": ["-o", "hello.exe", "hello.cpp"],
    "showOutput": "always"
}

launch.json 파일

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch (Windows)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceRoot}/hello.exe",
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\MinGw\\bin\\gdb.exe",
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "externalConsole": false,
            "visualizerFile": "${workspaceRoot}/my.natvis"
        }
    ]
}

VS 코드에 'C / C ++ for Visual Studio Code'확장 프로그램도 설치되어 있습니다.


컴파일 할 수는 있지만 VSCode에서 C / C ++를 디버깅 할 수는 없습니다. 기사에서는 디버깅이 Linux에서만 지원된다고 말합니다. 또한 최근 에이 스레드를 동일하게 만들었습니다 . 어떤 도움을 주셔서 감사합니다 ...
Mahesha999

5

여기서 기본적인 문제는 C ++ 프로그램을 빌드하고 연결하는 것이 사용중인 빌드 시스템에 크게 의존한다는 것입니다. 플러그인과 사용자 정의 코드의 조합을 사용하여 다음과 같은 고유 한 작업을 지원해야합니다.

  1. 편집기에 대한 일반적인 C ++ 언어 지원 이것은 일반적으로 ms-vscode.cpptools를 사용하여 이루어지며, 대부분의 사람들은 빌드 지원과 같은 다른 많은 것들도 처리 할 것으로 기대합니다. 시간을 절약 해 드리겠습니다. 그렇지 않습니다. 그러나 어쨌든 원할 것입니다.

  2. 작업을 빌드, 정리 및 재 구축합니다. 이곳에서 여러분이 선택한 빌드 시스템이 엄청나게 커집니다. CMake 및 Autoconf (god help you)와 같은 플러그인을 찾을 수 있지만 Meson 및 Ninja와 같은 것을 사용하는 경우 일부 도우미 스크립트를 작성하고 사용자 정의 "tasks.json"파일을 다음과 같이 구성해야합니다. 이것들을 처리하십시오. Microsoft는 마지막 몇 가지 버전에서 해당 파일에 대한 모든 것을 완전히 변경하여 형식을 완전히 바꾸는 것에 대해 아무 것도 말하지 않고 호출 할 대상과 장소 (예, placeS)로 바꿨습니다. 더군다나, "버전"키를 사용하여 원하는 변형을 지정하기 위해 이전 버전과의 호환성을 유지했습니다. 자세한 내용은 여기를 참조하십시오.

https://code.visualstudio.com/docs/editor/tasks

...하지만 메모는 다음과 충돌합니다.

https://code.visualstudio.com/docs/languages/cpp

경고 : 2.0.0 이하의 "버전"태그와 함께 시작되는 모든 답변은 아래에 있습니다.

내가 지금 가장 가까운 것은 다음과 같습니다. 스크립트에서 많은 노력을 기울 였지만 실제로는 메뉴 항목을 제공하지 않으며 다른 세 가지 명시 적 항목을 만들지 않고 디버그와 릴리스를 선택할 수있는 좋은 방법이 없습니다. 여기. 모든 것을 말하면, 현재 내 .vscode / tasks.json 파일로 허용 할 수있는 것은 다음과 같습니다.

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
    {
        "label": "build project",
        "type": "shell",
        "command": "buildscripts/build-debug.sh",
        "args": [],

        "group": {
            "kind": "build",
            "isDefault": true
        },
        "presentation": {
            // Reveal the output only if unrecognized errors occur.
            "echo": true,
            "focus": false,
            "reveal": "always",
            "panel": "shared"
        },

        // Use the standard MS compiler pattern to detect errors, warnings and infos
        "options": {
            "cwd": "${workspaceRoot}"
        },
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["relative", "${workspaceRoot}/DEBUG"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    },
    {
        "label": "rebuild project",
        "type": "shell",
        "command": "buildscripts/rebuild-debug.sh",
        "args": [],
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "presentation": {
            // Reveal the output only if unrecognized errors occur.
            "echo": true,
            "focus": false,
            "reveal": "always",
            "panel": "shared"
        },

        // Use the standard MS compiler pattern to detect errors, warnings and infos
        "options": {
            "cwd": "${workspaceRoot}"
        },
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["relative", "${workspaceRoot}/DEBUG"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    },
    {
        "label": "clean project",
        "type": "shell",
        "command": "buildscripts/clean-debug.sh",
        "args": [],

        "group": {
            "kind": "build",
            "isDefault": true
        },
        "presentation": {
            // Reveal the output only if unrecognized errors occur.
            "echo": true,
            "focus": false,
            "reveal": "always",
            "panel": "shared"
        },

        // Use the standard MS compiler pattern to detect errors, warnings and infos
        "options": {
            "cwd": "${workspaceRoot}"
        },
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["relative", "${workspaceRoot}/DEBUG"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    }
]

}

이론적으로이 파일은 작업 공간 루트에 배치하면 작동하므로 숨겨진 디렉토리 (.vscode)의 파일을 개정 제어 시스템으로 검사하지 않아도됩니다. 나는 그것이 실제로 작동하는 것을 아직 보지 못했다. 테스트하지만 실패하면 .vscode에 넣으십시오. 어느 쪽이든, IDE가 없으면 IDE가 망할 것입니다. (예, 이것은 현재 .vscode를 서브 버전으로 검사해야한다는 것을 의미합니다. 이는 좋지 않습니다.) 내 빌드 스크립트 (표시되지 않음)는 내 경우, meson 및 그 안에 빌드하십시오 (내 경우에는 닌자를 사용하여).

  1. 실행, 디버그, 연결, 정지 "launch.json"에 정의 된 다른 작업 세트입니다. 아니면 적어도 그들은 예전과 같았습니다. Microsoft는 문서의 해시를 만들었으며 더 이상 확실하지 않습니다.

다음은 build-scripts / build-debug.sh 파일입니다. 이상적으로는 빌드 컨텍스트 (디버그, 릴리스, 프로파일 링 등)를 상속하지만 코드가 개념을 가지고 있다면 코드가 어떻게 관리하는지 알 수 없습니다. 서식을 용서하십시오. 간다, StackOverflow, 간다. #! / bin / bash if [! -d "DEBUG"]; mkdir DEBUG meson DEBUG fi cd DEBUG 닌자 경우 [$? -eq 0]; 그런 다음 0을 종료하고 그렇지 않으면 $를 종료합니까? fi
중단 점

다시 한 번 : CTRL-SHIFT-B를 누른 후 빌드 작업을 시작하십시오. 나는 정말로 이것들로 가득 찬 적절한 메인 메뉴를 선호하지만, 아직 그렇게하는 방법을 찾지 못했습니다.
중단 점

4

업데이트 된 VS 코드를 사용하면 다음과 같은 방식으로 수행 할 수 있습니다.

  1. ( Ctrl+ P)를 누르고 다음을 입력하십시오.

    ext install cpptools
    
  2. 폴더 ( Ctrl+ K& Ctrl+ O)를 열고 확장자가 .cpp (예 : hello.cpp ) 인 폴더 안에 새 파일을 만듭니다 .

  3. 코드를 입력하고 저장을 누르십시오.

  4. ( Ctrl+ Shift+를 P누르고 입력 Configure task runner한 다음 other목록 하단에서 선택 하십시오.

  5. 이름이 build.bat 인 동일한 폴더에 배치 파일을 작성하고 파일 본문에 다음 코드를 포함하십시오.

    @echo off
    call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64     
    set compilerflags=/Od /Zi /EHsc
    set linkerflags=/OUT:hello.exe
    cl.exe %compilerflags% hello.cpp /link %linkerflags%
    
  6. 다음과 같이 task.json 파일을 편집 하고 저장하십시오 .

    {
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "build.bat",
    "isShellCommand": true,
    //"args": ["Hello World"],
    "showOutput": "always"
    }
    
  7. ( Ctrl+ Shift+ B를 눌러 빌드 작업을 실행 하면 프로젝트 의 .obj.exe 파일 이 생성됩니다 .

  8. 프로젝트를 디버깅 F5하려면 C ++ (Windows)를 누르고 선택하십시오 .

  9. 에서 launch.json 파일, 다음 줄을 편집 저장 파일 :

    "program": "${workspaceRoot}/hello.exe",
    
  10. 을 누르십시오 F5.


최신 VSC를 사용하고 있습니다. 4 단계에서 나를 잃었습니다. 태스크 실행기 구성을 사용할 수 없습니다.
Louis


2

확장 사용할 수 코드 러너를 바로 가기 키를 사용하여 오른쪽 상단 ANS에 재생 아이콘과 코드를 실행하려면 다음 Ctrl+Alt+N과 중단 Ctrl+Alt+M. 그러나 기본적으로 프로그램의 출력 만 표시하지만 입력을 받으려면 몇 가지 단계를 수행해야합니다.

Ctrl +를 누른 다음 설정 메뉴가 열리고 확장> 코드 구성 실행 이 속성을 아래로 스크롤하고 설정에서 편집을 찾으 십시오 .json 그것을 클릭하고 사이트에 다음 코드를 추가하십시오.

{ "code-runner.runInTerminal": true }


Ctrl +가 나를 위해 확대
MM

ctrl 쉼표는 Ctrl + 더하기 설정을 열지 않습니다
Ashley Fernandes

1

이제 Microsoft의 C / C ++ 언어 확장이 있습니다. "빠른 열기"( Ctrl+ p)로 이동하여 다음을 입력하여 설치할 수 있습니다 .

ext install cpptools

여기에서 읽을 수 있습니다.

https://blogs.msdn.microsoft.com/vcblog/2016/03/31/cc-extension-for-visual-studio-code/

2016 년 5 월 기준으로 매우 기본입니다.


2
이것은 경계선 링크 전용 답변 입니다. 여기에 많은 정보를 포함하도록 답변을 확장하고 참조 용으로 만 링크를 사용해야합니다.
jhpratt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.