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

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

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



답변

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"
}


답변

빌드 작업은 프로젝트마다 다릅니다. 새 프로젝트를 만들려면 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 을 누르면 에디터에서 오류가 밑줄로 나타납니다.


답변

새로운 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
                }
            }
        }
    ]
}


답변

다음은 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 템플릿


답변

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입니다.

답변

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

vscode-mac-c-example

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

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


답변

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

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

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