반응형

 

Windows와 Ubuntu 환경에 설치된 Visual Studio Code에서 C/C++을 컴파일하고 실행시키는 방법에 대해 설명합니다. 

테스트에 사용한 운영체제 버전은 Windows 10과 Ubuntu 20.04입니다.

 

Visual Studio Code 버전에 따라 진행 방법이 달라 질 수 있습니다.

문제가 되는 것을 발견할 때마다 문서를 업데이트합니다.

현재 문서는 Visual Studio Code 1.53.2 에서 테스트 한 결과입니다. 

 

최근 업데이트 후, 기존 프로젝트에서 디버깅이 안되는 현상이 있습니다. launch.json 파일을 삭제한 후, F5를 눌러서 다시 생성시 컴파일러 경로가 있는 것으로 선택하세요. 



컴파일시 에러 메시지를 영어로 보려면 다음 명령을 터미널에서 실행하세요.

chcp 437




          1.  C/C++ 컴파일러 설치

          2. Visual Studio Code 설치

          3. C/C++ 프로젝트 폴더 생성

          4. C/C++ 언어 지원 설치

          5. 코드 컴파일 및 실행

          6. 한글 입출력 예제 

          7. 디버깅하는 방법 

          8. CMake를 사용하여 둘 이상의 소스 코드 파일로 구성된 프로젝트 컴파일하기



2017.  8. 15   최초 작성

2018.  1.   9   tasks.json 일부 문법 변경으로 수정

2018.  1. 17   IntelliSense와 디버깅 방법 추가

2018.  7.  3   Ubuntu에서 하는 방법과 통합

2018.  7.  19  한글 입출력 예제 추가 

2018.  10. 12  최신 버전에서 확인 및 수정

2018.  11. 20  리눅스에서 tasks.json 수정

2018.  12. 3  디버깅 방법 개선

2018. 12.22  Windows 10 RS5(버전 1809)로 업데이트시 한글 깨짐 현상 발생

2019. 5. 1  1.33에서 바뀐점 수정

2019. 5. 21  전역 변수 디버깅 방법 추가 

2019. 6. 20  비주얼 스튜디오 코드 업데이트로 바뀐점 수정

2019. 8. 15  디버깅 관련 수정, mingw-w64에 맞추어 수정

2019. 8. 20  Ubuntu를 위한 부분 업데이트

2019. 10. 22 디버그시 launch.json 생성 문제 해결방법 추가

2019. 11. 17 utf8을 사용해도 한글 안 깨지도록 수정

2019. 12. 1   euc-kr로 변경

2020. 4. 12  우분투에서 컴파일된 프로그램 실행시 에러나는 문제 해결

                     lenilune3님이 알려주신 건데 이제서야 반영했네요.  

2020. 6. 26  Windows 10 - 64비트 컴파일러로 변경

2020. 9.  2  Windows 10에서 동작 확인 

2021. 2. 16 CMake를 사용하여 둘 이상의 소스 코드 파일로 구성된 프로젝트 컴파일하기

2021. 2. 25  티스토리 신버전 에디터로 바뀌면서 일부 내용이 엉뚱하게 바뀐점을 발견하여 수정하여 올렸습니다. 

2021. 3. 4  최신버전에서 바뀐점 반영

2021. 7. 17 VIsual Studio Code 업데이트 후, CMAKE 사용시 바뀐점 반영



관련 포스트

 

Visual Studio Code와 Windows Subsystem for Linux (WSL) 연동하여 C/C++ 빌드 및 디버깅하기
https://webnautes.tistory.com/1484 

 

1. C/C++ 컴파일러 설치 

1.1. Windows 

 

아래 링크에서 MinGW-W64 GCC-8.1.0 항목에 있는 x86_64-posix-seh를 다운로드합니다. 64비트 컴파일러입니다.

혹 32비트 컴파일러가 필요하면 i686-posix-dwarf를 다운로드 받으세요.  본 문서는 64비트 컴파일러를 기준으로 진행합니다.

 

https://sourceforge.net/projects/mingw-w64/files/mingw-w64/ 

 




압축을 풀어 C:\mingw64에 복사해줍니다. 

 




윈도우 키 + R을 눌러서 보이는 실행창에서 sysdm.cpl를 입력하고 엔터를 누릅니다. 

 




고급 탭을 클릭하고 아래 보이는 환경 변수 버튼을 클릭합니다. 

 




시스템 변수에서 Path를 선택하고 편집 버튼을 클릭합니다. 

 




새로 만들기 버튼을 클릭한 후.. 맨 아래에 다음 경로를 입력합니다.

 

C:\mingw64\bin

 




윈도우 키 + R을 입력 후, cmd 엔터를 눌러서 실행되는 명령 프롬프트 창에서 

다음처럼 gcc -v 명령이 실행 가능해지는지 확인하세요.

 




1.2. Ubuntu

 

build-essential 패키지를 설치하면 gcc, g++ 등 컴파일에 필요한 패키지들이 설치됩니다.

 

$ sudo apt-get install  build-essential

 

webnautes@webnautes-pc:~$ sudo apt-get install  build-essential
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음의 추가 패키지가 설치될 것입니다 :
  g++ g++-7 gcc
제안하는 패키지:
  g++-multilib g++-7-multilib gcc-7-doc libstdc++6-7-dbg gcc-multilib flex
  bison gcc-doc
다음 새 패키지를 설치할 것입니다:
  build-essential g++ g++-7 gcc
0개 업그레이드, 4개 새로 설치, 0개 제거 및 81개 업그레이드 안 함.
7,577 k바이트 아카이브를 받아야 합니다.
이 작업 후 25.0 M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] 



2. Visual Studio Code 설치

다음 포스팅을 참고하여 진행하세요. 




          Visual Studio Code 설치하는 방법( Windows / Ubuntu )
          http://webnautes.tistory.com/1197 




여기서부터는 윈도우와 우분투에서 똑같이 진행하면 됩니다.

유저 인터페이스 언어를 한글로 바꾸려면 Ctrl + Shift + P를 누르고 입력창이 보이면 display를 입력하고 엔터를 누릅니다.

 



Install additional languages를 선택합니다.

 



Korean Language Pack을 옆에 보이는 파란색 Install 버튼을 클릭하여 설치합니다. 

 



설치 완료후 Visual Studio Code를 종료했다가 다시 시작하면 유저 인터페이스가 한글로 변경됩니다. 

 




3. C/C++ 프로젝트 폴더 생성

Hello, World!를 출력하는 프로그램 코드를 작성해보겠습니다. 

 

3-1. 왼쪽에 위치한 액티비티 바에서 탐색기 아이콘을 클릭하거나, 단축키 Ctrl + Shift + E를 누르면 아래 캡쳐화면처럼 사이드바에 탐색기가 열립니다.

 




3-2. 탐색기에서 폴더 열기를 클릭합니다.

 




3-3.  윈도우의 경우에는 왼쪽 위에 보이는 “새 폴더”를 클릭하여 “C_C++_Projects” 폴더를 생성합니다. 

( 이름에 빈칸이나 & 등을 쓸수 없는 제약이 있습니다. )

 

생성된 C_C++_Projects 폴더를 선택하고 폴더 선택 버튼을 클릭합니다.

 




우분투의 경우에는 로그인 사용자 폴더로 이동한 후  폴더 만들기를 클릭하여  C_C++_Projects 이름의 폴더를 생성합니다. 

생성된 폴더로 이동한 후 확인 버튼을 클릭합니다.

 




다음처럼 오른쪽 위에 아이콘이 보일 수도 있습니다.

 





3-4. 탐색기에 C_C++_PROJECTS 폴더가 추가되었습니다.

 



3-5. C와 C++ 소스 코드 파일를 위한 별도의 하위 폴더를 생성하도록 하겠습니다.

우선 C언어를 위한 폴더를 생성합니다. 생성된 폴더에 마우스 커서를 가져가면 보이는새 폴더” 아이콘을 클릭합니다.

 




3-6. helloworld를 입력하고 엔터를 눌러서 helloworld 폴더를 생성합니다.

 




3-7. “새 파일” 아이콘을 클릭합니다.

 




3-8. hello.c를 입력하고 엔터를 눌러서  파일을 생성합니다. 편집기 영역에  hello.c 파일이 열립니다.

 




오른쪽 아래에 C/C++ 확장 권장 메시지 박스가 보이면 Install 또는 설치를 클릭하여 설치합니다.

 

 

설치한 확장을 적용시키기 위해  비주얼 스튜디오 코드를 종료시켰다가 다시 실행합니다. 




3-9. hello.c 파일에 다음 코드를 입력합니다.

 

#include <stdio.h>
 
int main()
{
    printf("Hello, world!\n");
    return 0;
}



3-10. 입력 후, 탭에 표시된 파일 이름 옆에 하얀색 동그라미가 표시됩니다.

 




Ctrl + S를 눌러 저장하면 하얀색 곱하기 표시로 변합니다.

 




3-11. 이번엔 C++ 코드를 위한 폴더를 생성합니다. 

아래 캡쳐화면처럼 빈 공간(빨간색 사각형)을 클릭합니다.

그러면 helloworld 폴더에 대한 선택이 해제됩니다. 

 




3-12. C_C++_PROJECTS에 마우스 커서를 가져가면 보이는 “새폴더 아이콘”을 클릭합니다. 

 




3-13. helloworldcpp를 입력하고 엔터를 눌러서 폴더를 생성합니다. 

 




3-14. 이제 helloworldcpp가 선택된 상태입니다.  C_C++_PROJECTS 옆에 보이는 새파일 아이콘을 클릭하면 helloworldcpp 폴더에 파일을 추가할 수 있습니다. 

 

“새파일 아이콘”을 클릭하고 hello.cpp를 입력 후 엔터를 누르면 캡쳐화면처럼 파일이 생성됩니다. 

 




3-15. 다음 내용을 hello.cpp 파일에 입력하고 Ctrl + S를 눌러서 저장합니다. 

 

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello, World!" << endl;

    return 0;
}



3-16. 현재 탐색기에 있는 파일과 폴더 목록입니다.

 



4. C/C++ 언어 지원 설치

4-1. C/C++에 대한 문법 강조(Syntax highlighter)는 기본적으로 지원하고 있습니다. 

하지만 Visual Studio Code에서 C/C++을 제대로 사용하려면 C/C++ 확장을 설치해줘야 합니다. 

 

앞에서 아래와 같은 창이 보여 설치했다면 4.2를 건너뛰고 4.3을 진행하세요.

 




4-2. 설치하는 것을 건너띄었다면 Ctrl + Shift + X를 누르거나 액티비티 바에서  확장 아이콘을 클릭 후, 입력란에 c/c++을 입력합니다. 

 




검색된 리스트에서 C/C++ 항목에 있는 파란색  설치를 클릭합니다.

 



설치한 확장을 적용시키기 위해  비주얼 스튜디오 코드를 종료시켰다가 다시 실행합니다. 



4-3.  C/C++ 확장이 설치된후 진행해야합니다. 다음처럼 보이면 진행중입니다. 



Ctrl + Shift + P를 눌러서 보이는 입력 창에 c/c++을 입력한 후, “C/C++: 구성 편집(UI)”를 선택합니다. 

 



4-4. IntelliSense 구성이 보입니다.  윈도우의 경우 4-5를 우분투의 경우 4-6을 진행하세요. 

 

4-5. 윈도우의 경우 컴파일러 경로에 MINGW의 컴파일러 3개가 인식됩니다. 

비주얼 스튜디오가 설치되어있다면 해당 컴파일러도 인식됩니다.  

 



헤더파일 인식하여 작성한 코드에 유용한 정보를 제공하기 위해 필요한 작업입니다. 

사용하는 언어가 C이면 gcc, 사용하는 언어가 C++이면 g++을 선택해주세요. 

하나의 폴더에서 두 언어 다 사용하는 경우에는 g++을 선택해도 무방할 듯합니다. 

 




4-6. 우분투의 경우에도 컴파일러들이 인식됩니다. 

헤더파일 인식하여 작성한 코드에 유용한 정보를 제공하기 위해 필요한 작업입니다. 

사용하는 언어가 C이면 gcc, 사용하는 언어가 C++이면 g++을 선택해주세요. 

하나의 폴더에서 두 언어 다 사용하는 경우에는 g++을 선택해도 무방할 듯합니다. 

 




4-7. 윈도우/우분투 공통부분입니다. 

IntelliSense 모드로 사용하는 운영체제에 따라서  windows-gcc-x64 또는 linux-gcc-x64를 선택하세요. 

 



추가로 사용할 헤더파일의 경로를 추가해주면 비주얼 스튜디어 코드에서 인식하게 됩니다. 

 



사용할 C 및 C++ 표준을 지정할 수 있습니다.

 



4-8. 설정이 자동으로 저장되므로 현재 탭을 닫아도 됩니다. 

 




4-9. 탐색기를 보면 .vscode 폴더에 c_cpp_properties.json파일이 추가되어 있습니다.

 




4-10. 이 파일을 직접 수정할 수도 있습니다. 앞에서 진행했던 설정들이 텍스트로 보입니다. 

 

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.18362.0",
            "compilerPath": "C:/mingw64/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}



5. 코드 컴파일 및 실행

 

5-1. 소스 코드를 선택한 상태에서  Visual Studio Code의 메뉴에서 터미널 > 기본 빌드 작업 구성을 선택합니다.

 

폴더에서 사용하는 언어에 맞추어 선택하세요.

사용하는 언어가 C이면 gcc, 사용하는 언어가 C++이면 g++을 선택해주세요. 

하나의 폴더에서 두 언어 다 사용하는 경우에는 g++을 선택해도 무방한 듯합니다.  

 




5-2. 아래 항목들은 보이지 않을 수도 있습니다. 

 

템플릿에서 tasks.json 파일 만들기를 선택합니다. 

 



Others를 선택합니다.

 




5-3. 탐색기의 .vscode 폴더에   tasks.json 파일이 추가되고 편집기에서 해당 파일이 열립니다.

 




5-4. tasks.json 내용을 다음으로 교체하고 Ctrl + S를 눌러서 저장합니다.

티스토리 신버전 에디터로 바뀌면서 엉뚱한 내용으로 표시되는  부분이 있어서 수정했습니다.  

 

{
    "version": "2.0.0",
    "runner": "terminal",
    "type": "shell",
    "echoCommand": true,
    "presentation" : { "reveal": "always" },
    "tasks": [
          //C++ 컴파일
          {
            "label": "save and compile for C++",
            "command": "g++",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": "build",

            //컴파일시 에러를 편집기에 반영
            //참고:   https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher

            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    // The regular expression. 
                   //Example to match: helloWorld.c:5:3: warning: implicit declaration of function 'prinft'
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        //C 컴파일
        {
            "label": "save and compile for C",
            "command": "gcc",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": "build",

            //컴파일시 에러를 편집기에 반영
            //참고:   https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher

            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    // The regular expression. 
                   //Example to match: helloWorld.c:5:3: warning: implicit declaration of function 'prinft'
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        // 바이너리 실행(Ubuntu)
        // {
        //     "label": "execute",
        //     "command": "${fileDirname}/${fileBasenameNoExtension}",
        //     "group": "test"
        // }
        // 바이너리 실행(Windows)
        {
            "label": "execute",
            "command": "cmd",
            "group": "test",
            "args": [
                "/C", "${fileDirname}\\${fileBasenameNoExtension}"
            ]
    
        }
    ]
}


우분투의 경우에는 아래처럼 수정해서 사용하세요.


       // 바이너리 실행(Ubuntu)
        {
             "label": "execute",
             "command": "${fileDirname}/${fileBasenameNoExtension}",
             "group": "test"
        }
        // 바이너리 실행(Windows)
        //{
        //    "label": "execute",
        //    "command": "cmd",
        //    "group": "test",
        //    "args": [
        //        "/C", "${fileDirname}\\${fileBasenameNoExtension}"
        //    ]
    
        // }




5-6. 단축키를 설정해줍니다.   메뉴에서 파일 > 기본 설정 > 바로 가기 키를 선택합니다. 

이미 설정되어 있는 단축키 목록을 보여줍니다. 

 

사용자 정의로 바로 가기 키를 추가해야 합니다. 캡처화면에 빨간색 사각형으로 표시한 아이콘을 클릭합니다.

 




5-7. 다음처럼 입력하고 Ctrl + S를 눌러서 저장합니다. 기본값을 무시하고 현재 입력한 값이 우선 적용됩니다.

(단 우분투의 경우 데스크톱 환경의 단축키가 우선입니다. 다른 곳에서 사용하지 않는 단축키를 사용해야 합니다.)



// 키 바인딩을 이 파일에 넣어서 기본값을 덮어씁니다.
[
    //컴파일
    { "key": "ctrl+alt+c", "command": "workbench.action.tasks.build" },
    
    //실행
    { "key": "ctrl+alt+r", "command": "workbench.action.tasks.test" }
]




5-8. 탐색기에서 hello.c를 선택하고 Ctrl +Alt + C를 누르면 보이는 항목에서 save and compile for C를 선택합니다.

 



편집 중이던 모든 파일 저장되고 앞에서 터미널컴파일 진행결과가 보입니다.

문제없이 컴파일이 진행되어다면 왼쪽 탐색기에 컴파일 결과물인 hello.exe 파일이 보입니다. 

 




Ctrl  + Alt + R을 누르면 보이는 execute를 선택합니다.

 



실행 결과가 터미널에 보여집니다.

 




5-9. 탐색기에서 hello.cpp를 선택하고 Ctrl +Alt + C를 누르면 보이는 항목에서 save and compile for C++를 선택합니다.

 



편집 중이던 모든 파일 저장되고 앞에서 터미널컴파일 진행결과가 보입니다.

문제없이 컴파일이 진행되어다면 왼쪽 탐색기에 컴파일 결과물인 hello.exe 파일이 보입니다. 

 



Ctrl  + Alt + R을 누르면 보이는 execute를 선택합니다.

 



실행 결과가 터미널에 보여집니다.

 




참고로 소스코드별로 별도의 폴더를 생성하지 않고 하나의 폴더에 여러 개의 소스코드를 작성하여 컴파일 하는 것도 가능합니다.

 




Visual Studio Code에서 파일을 저장하거나 불러올때 부모 폴더를 기준으로 하기 때문에 하나의 폴더에 여러 개의 서브 폴더를 두고 프로젝트를 관리시 번거로운 점이 있습니다. 

모든 파일들을 부모 폴더에 두면 뒤섞일수 있기 때문입니다. 

현재 실행 파일의 위치를 확인하여 파일을 저장하거나 불러오면 이런 점이 해결됩니다. 다음 포스트를 참고하세요.  

C/C++ - 실행 파일의 절대 경로 얻는 방법 ( realpath, GetModuleFileName )
https://webnautes.tistory.com/1448



6. 한글 입출력 예제 

 

6-1. 리눅스 환경이라면 별다른 설정 변경없이 진행가능합니다. 7번을 진행하세요.

 

아래처럼 진행했는데 한글이 깨지는 경우 윈도우를 업데이트 해보세요..

 

메뉴에서 파일 > 기본설정 > 설정 을 선택합니다.

encoding을 검색하여 Encoding 항목을 euckr로 변경합니다.

 



다음 예제를 새로운 파일로 저장하여 실행시켜보면 

 

#include <stdio.h>
 
int main()
{
    printf("문자열을 입력후 엔터를 누르세요!\n");

    char a[256];
    scanf("%s", a);

    printf(" \" %s \" 를 입력하셨네요.\n", a);
    return 0;
}



다음처럼 코드에 입력한 한글 문자열 출력과 입력한 문자열에 대한 출력이 모두 정상인 것을 볼 수 있습니다.



7. 디버깅하는 방법

진행하기 전에 위에서 작업했던 일부를 수정해야 합니다. 

프로젝트 폴더의 .vscode 폴더에 있는 tasks.json 파일을 열어서 컴파일 시 디버그 정보를 포함하도록 합니다. 

 



7-A C++ 언어 디버깅

 

7-1. 테스트 해보기 위해서 새로운 하위 폴더를 생성하여 main.cpp 파일을 추가합니다. 

먼저 C++ 파일의 경우부터 보겠습니다.

 

#include <iostream>

using namespace std;

int c = 0;
int d = 100;

int main()
{
    int a = 2;
    int b = 2;
    int c = a + b;

    cout << a << " + " << b << " = " << c << endl;

    return 0;
}






숫자 5 왼쪽으로 마우스 커서를 이동 후. 마우스 왼쪽 버튼을 클릭하면 빨간점이 표시됩니다.

디버깅이 시작되면 잠시 멈추게되는 브레이크 포인트입니다. 

 



7-2.  F5를 누릅니다.



C++(GDB/LLDB)를 선택합니다.

 



컴파일러 경로가 있는 g++.exe를 선택합니다. 

 




잠시 기다리면 디버깅이 시작됩니다. 

F11을 눌러서 다음 줄이 실행되게 할 수 있습니다. 

왼쪽에 보이는 변수 창에 지역 변수가 업데이트 됩니다. 

 





7-3. 7-2 작업은 한번만 해주면 됩니다. 이후에는 브레이크 포인트를 지정하고 F5를 누르면  디버깅이 시작됩니다. 




7-4. main함수 에서 사용하는 전역 변수 c는 변수 항목의 Locals에 추가되었는데 

전역변수 d의 경우에는 추가되어 있지 않습니다. 

 



이 경우 조사식에 마우스 커서를 가져가면 보이는 + 아이콘을 클릭하고 

 



추가할 변수 이름을 입력후 엔터를 누르면

 



해당 변수의 값이 보입니다.

 




7-B C언어 디버깅

 

별도의 추가 작업 없이 동일하게 디버깅이 가능했습니다. 

앞에서 C++ 디버깅 테스트시 launch.json 설정 파일이 생성되었기 때문입니다. 





Visual Studio Code에서 C/C++ 프로그래밍 with Makefile ( Windows/Ubuntu)
https://webnautes.tistory.com/1429

Visual Studio Code에서 둘 이상의 소스 코드 파일로 구성된 프로젝트를 컴파일하려면 Makefile이나 cmake를 사용해야 합니다. 
테스트에 사용한 운영체제 버전은 Windows 10과 Ubuntu 20.04입니다.




8. CMake를 사용하여 둘 이상의 소스 코드 파일로 구성된 프로젝트 컴파일하기

 

8-1. CMake를 설치합니다.

https://cmake.org/download/  

 



설치 진행 중 “Add CMake to the system PATH for all users”를 체크해야 합니다.

 




8-2. 새로운 폴더를 열어줍니다. 

 



8-3. “새 폴더” 아이콘을 클릭한 후, 폴더 이름 test-1을 입력 후, 엔터를 누릅니다. 



8-4. 새로 생성된 폴더 test-1을 한번 클릭한 후, 새파일 아이콘을 클릭하고 파일 이름 main.cpp를 입력 후, 엔터를 누릅니다.

같은 방식으로 main.h, add.cpp, sub.cpp를 생성합니다.

 

 

main.cpp

#include <iostream>
#include "main.h"

int main()
{
    int a = 1;
    int b = 2;

    int c = add(a, b);
    int d = sub(a, b);

    std::cout << c << " " << d << std::endl;

    return 0;
}

 

main.h

int sub(int a, int b);
int add(int a, int b);

 

add.cpp

#include "main.h"

int add(int a, int b)
{
    int c;

    c = a + b;

    return c;
}

 

sub.cpp

#include "main.h"

int sub(int a, int b)
{
    int c;

    c = a - b;

    return c;
}



8-5. 메뉴에서 터미널 > 기본 빌드 작업 구성을 선택합니다. 

 

다음 항목들이 보이면 g++.exe를 클릭합니다.

 

 

 

다음 선택 화면이 추가로 보일 수 있습니다.

템플릿에서 tasks.json 파일 만들기를 선택합니다. 

 

 

Others를 선택합니다.

 

 

 

탐색기의 .vscode 폴더에   tasks.json 파일이 추가되고 편집기에서 해당 파일이 열립니다.

 

 

 

8-6. 편집기에 열린 tasks.json 파일을 다음 내용으로 대체하고 Ctrl +S를 눌러 저장합니다.

{
    "version": "2.0.0",
    "runner": "terminal",
    "type": "shell",
    "echoCommand": true,
    "presentation" : { "reveal": "always" },
    "tasks": [
          //C++ 컴파일
          {
            "label": "compile for C++",
            "command": "cd ${fileDirname} && cmake . -G \"MinGW Makefiles\" && mingw32-make",
            "group": "build",

            //컴파일시 에러를 편집기에 반영
            //참고:   https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher

            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    // The regular expression. 
                   //Example to match: helloWorld.c:5:3: warning: implicit declaration of function 'prinft'
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        // 바이너리 실행(Windows)
        {
            "label": "execute",
            "command": "cmd",
            "group": "test",
            "args": [
                "/C", "${fileDirname}\\${fileDirnameBasename}"
            ]
        }
    ]
}



8-7. 새파일 아이콘을 클릭하고 파일 이름 CMakeLists.txt를 입력 후, 엔터를 누릅니다.

파일 내용을 다음 내용으로 대체하고 Ctrl + S를 눌러 저장합니다. 

 

 

cmake_minimum_required(VERSION 3.0)

get_filename_component(ProjectId ${CMAKE_CURRENT_SOURCE_DIR} NAME)
string(REPLACE " " "_" ProjectId ${ProjectId})
project(${ProjectId})

set (CMAKE_CXX_STANDARD 11)

file(GLOB SOURCES  *.cpp)

add_executable(${PROJECT_NAME} ${SOURCES} )




8-8. cpp 파일 아무거나 선택해서 열은 상태에서 Ctrl + Alt + C를 눌러 컴파일을 진행합니다.

터미널에 다음과 같은 메시지가 출력됩니다. 

 

> Executing task: cd D:\work\code\cpp_project\test-1 && cmake . -G "MinGW Makefiles" && mingw32-make <

 

-- The C compiler identification is GNU 8.1.0

-- The CXX compiler identification is GNU 8.1.0

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Check for working C compiler: C:/mingw64/bin/gcc.exe - skipped

-- Detecting C compile features

-- Detecting C compile features - done

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Check for working CXX compiler: C:/mingw64/bin/g++.exe - skipped

-- Detecting CXX compile features

-- Detecting CXX compile features - done

-- Configuring done

-- Generating done

-- Build files have been written to: D:/work/code/cpp_project/test-1

Scanning dependencies of target test-1

[ 25%] Building CXX object CMakeFiles/test-1.dir/add.cpp.obj

[ 50%] Building CXX object CMakeFiles/test-1.dir/main.cpp.obj

[ 75%] Building CXX object CMakeFiles/test-1.dir/sub.cpp.obj

[100%] Linking CXX executable test-1.exe

[100%] Built target test-1



8-9. Ctrl + Alt + R을 눌러서 실행합니다.

다음처럼 실행결과가 출력됩니다.

 

3 -1



8-10. 이제 새로운 서브 디렉토리를 생성한 후, CMakeLists.txt 파일만 복사해두면 다른 프로젝트도 컴파일 할 수 있습니다. 

 



8-11. F5를 누르고 디버깅 시작시  

 

C++(GDB/LLDB)를 선택합니다.

 



구성에서 다음처럼 첫번째 항목을 선택해야 합니다. 

 



다음 두 파일을 수정해야 합니다.



launch.json 파일

 

수정전

"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",

 

수정후

"program": "${fileDirname}\\${relativeFileDirname}.exe",




CMakeLists.txt 파일

 

추가

set(CMAKE_BUILD_TYPE Debug)

 



8-12. 다시 F5를 눌러 디버깅해보면 여러 파일을 거쳐 잘됩니다. 

 

 

 

 

 





반응형

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 ~~

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">
  1. 이전 댓글 더보기
  2. thumbnail
    Favicon of https://wigden-codingshop.tistory.com BlogIcon Wigden

    안녕하세요 작성글 정말 친절하게 설명해주셔서 큰 도움이 됐습니다ㅎㅎ
    질문이 한가지 있는데요
    1) Ctrl+Alt+C 와 Ctrl+Alt+R 로 컴파일 후 실행하는것과
    2) F5 를 눌러 디버깅 후 실행하는것이 디버깅 유무 외에 어떤차이가 있나요?

    1)방법으로 했을땐 한글이 안깨지는데 2)방법으로 했을때는 한글이 깨지네요ㅠ
    혹시 해결할 수 있는 방법을 가르쳐주시면 감사하겠습니다.
    감사합니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2020.11.20 23:25 신고

      확인해보니 디버깅모드에서는 한글을 출력하는 경우 깨지는 군요. vscode에서 이 부분을 해결하는 부분을 찾아봤는데 아직 마땅한 방법이 안보이네요.

  3. thumbnail
    Favicon of https://flreauniverse.tistory.com BlogIcon Flrea

    안녕하세요. 좋은 정보 정말 감사합니다ㅠㅠ
    근데 한 가지, 여쭈어 볼 것이 있는데
    #include <stdio.h>

    int main()
    {
    printf("문자열을 입력후 엔터를 누르세요!\n");

    char a[256];
    scanf("%s", a);

    printf(" \" %s \" 를 입력하셨네요.\n", a);
    return 0;
    }
    이 예제를 디버깅 할 때, scanf 함수가 작동되지가 않네요.
    c언어 디버깅에 사용된 예제를 디버깅하면 정상적으로 실행은 되지만, 12줄에서 출력이 되지 않아요.
    즉 인풋/아웃풋이 안되는 것 같은데 어떻게 해야할까요?
    인풋의 경우엔 터미널에 숫자가 입력되지 않고 다음 코드로 넘어가지도 않는 현상이 일어납니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2020.11.22 18:04 신고

      디버깅시 문제는 저도 방법을 알지 못합니다. 릴리즈모드때처럼 명령 프롬프트창으로 띄워서 실행할수 없어서 해결하기 힘들듯합니다

  4. thumbnail
    Favicon of https://mybrilliantdays.tistory.com BlogIcon MyBrilliantDays

    여러군데 검색해보고 안되었는데, 이거 보고 한번에 성공했네요.
    감사합니다.

  5. thumbnail
    Favicon of https://naturedeveloper.tistory.com BlogIcon natureDeveloper

    비주얼코드에서 c++ 돌리고 싶었는데.. 감사합니당.

  6. thumbnail
    Favicon of https://mirroryrotsit.tistory.com BlogIcon 안경쓴부엉이

    제가 윈도우로 사용할 때는 gcc 명령어 인수부분에서 오류가 뜨네요
    https://rasino.tistory.com/307를 참고해서 바꾸니까 오류가 없어졌어요^^

    {
    "version": "2.0.0",
    "runner": "terminal",
    "type": "shell",
    "echoCommand": true,
    "presentation": {
    "reveal": "always"
    },
    "tasks": [
    //C++ 컴파일
    {
    "label": "save and compile for C++",
    "command": "g++",
    "args": [
    "${file}",
    "-o",
    "${fileDirname}/${fileBasenameNoExtension}"
    ],
    "group": "build",
    //컴파일시 에러를 편집기에 반영
    //참고: https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher
    "problemMatcher": {
    "fileLocation": [
    "relative",
    "${workspaceRoot}"
    ],
    "pattern": {
    // The regular expression.
    //Example to match: helloWorld.c:5:3: warning: implicit declaration of function 'prinft'
    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
    "file": 1,
    "line": 2,
    "column": 3,
    "severity": 4,
    "message": 5
    }
    }
    },
    //C 컴파일
    {
    "label": "save and compile for C",
    "command": "gcc",
    "args": [
    "${file}",
    "-o",
    "${fileDirname}/${fileBasenameNoExtension}"
    ],
    "group": "build",
    //컴파일시 에러를 편집기에 반영
    //참고: https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher
    "problemMatcher": {
    "fileLocation": [
    "relative",
    "${workspaceRoot}"
    ],
    "pattern": {
    // The regular expression.
    //Example to match: helloWorld.c:5:3: warning: implicit declaration of function 'prinft'
    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
    "file": 1,
    "line": 2,
    "column": 3,
    "severity": 4,
    "message": 5
    }
    }
    },
    // // 바이너리 실행(Windows)
    {
    "label": "execute",
    "command": "cmd",
    "group": "test",
    "args": [
    "/C",
    "${fileDirname}\\${fileBasenameNoExtension}"
    ]
    }
    ]
    }

  7. thumbnail
    Favicon of https://yourlifebetter.tistory.com BlogIcon carpediem188

    안녕하세요, 완전 초보자입니다.

    컴파일후 실행시 아래와 같이 경로에 대한 에러가 발생합니다.
    어떻게 해결할 수 있을까요?ㅠ

    > Executing task: cmd /C $\$ <

    Microsoft Windows [Version 10.0.18363.1379]
    (c) 2019 Microsoft Corporation. All rights reserved.
    지정된 경로를 찾을 수 없습니다.

    C:\Users\Administrator>

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.02.22 14:31 신고

      소스코드 파일을 열어둔 상태에서 빌드및 실행을 하세요

    • thumbnail
      Favicon of https://yourlifebetter.tistory.com BlogIcon carpediem188
      2021.02.22 14:44 신고

      똑같은 현상이에요
      대신 c_cpp_properties.json 의 터미널에서 아래의 메세지가 떠요

      String does not match the pattern of "^\d{2}\.\d{1}\.\d{5}\.\d{1}$|^8\.1$".

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.02.22 15:00 신고

      포스트 내용중 수정한 부분있나요? 그대로 붙여넣기하면 동작하는 걸 확인해서요.

    • thumbnail
      Favicon of https://yourlifebetter.tistory.com BlogIcon carpediem188
      2021.02.22 15:13 신고

      그대로 실행을 했는데 포스트 내용중


      c_cpp_properties.json에서
      IncludePath 와 compilerPath 부분이 아래와 같이 다르긴 합니다.

      ${workspaceFolder}/**

      C:/MinGW/bin/g++.exe

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.02.22 16:11 신고

      컴파일러를 포스트에서 사용하는 거로 바꾸어보세요.

  8. thumbnail
    Favicon of https://wnsals1716.tistory.com BlogIcon 삼성 고다고

    21.03.02 이전까지 잘 이 포스트의 세팅대로 잘 사용하고 있었는데
    어떤 업데이트를 거친 후에 ctrl+f5로 실행이 안 됩니다.
    c++을 주로 하는데 ctrl+f5 를 하면
    =======================================================
    작업 'C/C++: g++.exe build active file' 을(를) 찾을 수 없습니다.
    [작업 구성] [launch.json 열기] [취소]
    =======================================================
    이렇게 뜹니다.
    데탑과 노트북 똑같은 세팅인데 동시에 둘다 그러는것으로 보아
    vs code 켰을 때 무언갈 업데이트하는것을 봤는데 너무 빨리 지나가서 뭔지 잘 모르겠지만
    그 업데이트 이후에 발생한 오류 같아요. 도움을 받을 수 있을까요?

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.03.02 22:50 신고

      Ctrl + F5 단축키를 따로 설정하셨나요? 눌러봤는데 디버깅 모드만 되서요.

      우선 예상되는 원인은 컴파일하고 실행하는데 문제가 있다면 tasks.json 파일에 문제가 발생한 거로 보이고..

      문제없다면 launch.json 파일을 지우고 F5를 눌러서 다시 생성해야 할듯 보입니다.

    • thumbnail
      Favicon of https://wnsals1716.tistory.com BlogIcon 삼성 고다고
      2021.03.02 22:56 신고

      launch.json을 지우고
      다시 ctrl+f5 해서
      C++(GDB/LLDB)선택 후
      g++.exe
      를 선택했더니

      ==========================
      miDebuggerPath가 없습니다. gdb.exe. 디버거가 설치되었습니까?
      ==========================
      와 같은 에러가 뜹니다.

    • thumbnail
      Favicon of https://wnsals1716.tistory.com BlogIcon 삼성 고다고
      2021.03.02 23:01 신고

      아, 구성 선택 화면에서
      g++ - 활성 파일 빌드 및 디버그 (g++)
      gcc - 활성 파일 빌드 및 디버그 (gcc)
      cmd - 활성 파일 빌드 및 디버그 (cmd)
      cpp.exe - 활성 파일 빌드 및 디버그 (컴파일러: C\mingw64\bin\cpp.exe)
      g++.exe - 활성 파일 빌드 및 디버그 (디버거에서 생성된 작업입니다.)
      g++.exe - 활성 파일 빌드 및 디버그 (디버거에서 생성된 작업입니다.)
      cpp.exe - 활성 파일 빌드 및 디버그 (컴파일러: C\mingw64\bin\cpp.exe)
      gcc.exe - 활성 파일 빌드 및 디버그 (컴파일러: C\mingw64\bin\gcc.exe)
      g++.exe - 활성 파일 빌드 및 디버그 (컴파일러: C/mingw64/bin/g++.exe)
      기본 구성


      이렇게 나오는데 맨 위의 g++을 클릭하면 에러가 나고
      맨 아래의 g++.exe를 선택하면 되네요.
      차이가 뭔지 잘 모르겠는데 혹시 아시나요?
      그리고 왜 맨 아래의 g++.exe 경로만 \가 아닌 / 로 표시되는지 궁금하네요...

    • thumbnail
      Favicon of https://wnsals1716.tistory.com BlogIcon 삼성 고다고
      2021.03.02 23:02 신고

      댓글에 역슬래시가 들어가지 않나 봅니다.
      23:01분 댓글의 다른 컴파일러 경로는 다 중간 구분자가 역슬래시이고
      c - mingw64 - bin - cpp.exe
      c - mingw64 - bin - cpp.exe
      c - mingw64 - bin - gcc.exe
      이런 형태입니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.03.02 23:22 신고

      vscode를 업데이트해보니 같은 현상이 발견되는 군요.. 최신 버전에서 컴파일러의 경로를 보여주는 방식으로 변경되었습니다. 이것을 선택해야 gdb를 사용한 디버깅이 되네요. 예전 버전의 vscode로 만든 프로젝트에선 이 문제가 생길듯합니다. 왜냐하면 이전 버전에선 컴파일러의 경로없이 사용했기 때문인것으로 짐작됩니다.


      아래 3개는 이전 버전의 vscode에서 사용하던 것이고

      g++ - 활성 파일 빌드 및 디버그 (g++)
      gcc - 활성 파일 빌드 및 디버그 (gcc)
      cmd - 활성 파일 빌드 및 디버그 (cmd)

      아래는 최신 버전의 vscode에서 사용되는 것입니다.
      cpp.exe - 활성 파일 빌드 및 디버그 (컴파일러: C\mingw64\bin\cpp.exe)
      gcc.exe - 활성 파일 빌드 및 디버그 (컴파일러: C\mingw64\bin\gcc.exe)
      g++.exe - 활성 파일 빌드 및 디버그 (컴파일러: C/mingw64/bin/g++.exe)

      번거롭더라도 설정 파일을 지우고 새로 만들어야 이런 문제가 안생길것으로 보입니다.

    • thumbnail
      Favicon of https://wnsals1716.tistory.com BlogIcon 삼성 고다고
      2021.03.02 23:35 신고

      업데이트 이후 설정이 달라졌군요.
      해결법을 찾아서 다행입니다.
      항상 포스팅 잘 보고 있습니다.
      이 기회를 빌어 감사드립니다.
      앞으로도 좋은 포스팅 많이 부탁드립니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.03.02 23:38 신고

      감사합니다^^ 글을 또 업데이트 해놔야겠군요

  9. thumbnail
    Favicon of https://kko-ng.tistory.com BlogIcon kko_ng

    좋은 글 감사합니다.
    근데 5-8단계에서 hello.exe 파일은 잘 생성되는데 그 다음단계에서

    > Executing task: cmd /C C:\Users\User\C++\helloworld\hello <
    'cmd'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
    배치 파일이 아닙니다.
    터미널 프로세스 "C:\Windows\System32\cmd.exe /d /c cmd /C C:\Users\User\C++\helloworld\hello"을(를) 시작하지 못했습니다(종료 코드: 1).

    라고 오류가 뜹니다... 아마 PATH설정에서 뭔가 오류가 있는거 같아서 구글링을 해봐도 해결이 안됩니다.. 도와주실 수 있을까요?

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.03.09 20:53 신고

      윈도우키 + R을 누른 후...cmd를 입력하여 명령 프롬프트는 실행되나요?

      검색해보니 다음 글이 보이긴한데 해결될지 모르겠군요

      https://justclean.tistory.com/170

    • thumbnail
      Favicon of https://kko-ng.tistory.com BlogIcon kko_ng
      2021.03.09 23:14 신고

      cmd에서 cd명령으로 helloworldcpp로 이동한뒤, g++ hello.cpp 후에 hello.exe.를 실행하면 정상적으로 작동합니다.

      제가 가상머신(우분투)에서 c언어를 하다가 c++를 공부하려 하는데, 그냥 가상머신에서 계속하는게 나을까요? 혹시 우분투에서 c언어만을 하다가 c++를 사용하려면 추가적으로 어떤것을 해야하는지 정리하신 글이 있을까요?

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.03.10 08:40 신고

      추가적으로 할것은 없습니다. 본 글에 있는것으로 충분합니다

  10. thumbnail
    Favicon of https://rhythm-of-isocy.tistory.com BlogIcon isocy

    정보가 모두 한 곳에 모아져 있어서 손 안 대고 코 푸는 느낌이네요
    행복합니다

  11. thumbnail
    Favicon of https://godhung.tistory.com BlogIcon 용용이12

    유익한 정보 올려주셔서 잘 배우고 있습니다.
    VS 코드에서 CMAKE를 설치중에 다음과 같은 오류가 발생하였습니다.
    8-6. 편집기에 열린 tasks.json 파일을 다음 내용으로 대체하고 Ctrl +S를 눌러 저장합니다.
    부분에서 "command": "cd ${fileDirname} && cmake . -G \"MinGW Makefiles\" && mingw32-make", 오류가 발생하여
    "command": "cd ${fileDirname} ; cmake . -G \"MinGW Makefiles\" ; mingw32-make", 다음과 같이 수정한 후 컴파일을 진행하니깐
    > Executing task: cd C:\Users\SIM JUYONG\test-3 ; cmake . -G "MinGW Makefiles" ; mingw32-make <

    Set-Location : 'JUYONG\test-3' 인수를 허용하는 위치 매개 변수를 찾을 수 없습니다.
    위치 줄:1 문자:1
    + cd C:\Users\SIM JUYONG\test-3 ; cmake . -G MinGW Makefiles ; mingw32- ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Set-Location], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetLocationCommand

    CMake Error: Could not create named generator MinGW

    Generators
    * Visual Studio 16 2019 = Generates Visual Studio 2019 project files.
    Use -A option to specify architecture.
    Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
    Optional [arch] can be "Win64" or "ARM".
    Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
    Optional [arch] can be "Win64" or "ARM".
    Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
    Optional [arch] can be "Win64" or "ARM".
    Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
    Optional [arch] can be "Win64" or "ARM".
    Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
    Optional [arch] can be "Win64" or "IA64".
    Visual Studio 9 2008 [arch] = Generates Visual Studio 2008 project files.
    Optional [arch] can be "Win64" or "IA64".
    Borland Makefiles = Generates Borland makefiles.
    NMake Makefiles = Generates NMake makefiles.
    NMake Makefiles JOM = Generates JOM makefiles.
    MSYS Makefiles = Generates MSYS makefiles.
    MinGW Makefiles = Generates a make file for use with
    mingw32-make.
    Green Hills MULTI = Generates Green Hills MULTI files
    (experimental, work-in-progress).
    Unix Makefiles = Generates standard UNIX makefiles.
    Ninja = Generates build.ninja files.
    Ninja Multi-Config = Generates build-<Config>.ninja files.
    Watcom WMake = Generates Watcom WMake makefiles.
    CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
    CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
    CodeBlocks - NMake Makefiles JOM
    = Generates CodeBlocks project files.
    CodeBlocks - Ninja = Generates CodeBlocks project files.
    CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
    CodeLite - MinGW Makefiles = Generates CodeLite project files.
    CodeLite - NMake Makefiles = Generates CodeLite project files.
    CodeLite - Ninja = Generates CodeLite project files.
    CodeLite - Unix Makefiles = Generates CodeLite project files.
    Eclipse CDT4 - NMake Makefiles
    = Generates Eclipse CDT 4.0 project files.
    Eclipse CDT4 - MinGW Makefiles
    = Generates Eclipse CDT 4.0 project files.
    Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
    Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
    Kate - MinGW Makefiles = Generates Kate project files.
    Kate - NMake Makefiles = Generates Kate project files.
    Kate - Ninja = Generates Kate project files.
    Kate - Unix Makefiles = Generates Kate project files.
    Sublime Text 2 - MinGW Makefiles
    = Generates Sublime Text 2 project files.
    Sublime Text 2 - NMake Makefiles
    = Generates Sublime Text 2 project files.
    Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
    Sublime Text 2 - Unix Makefiles
    = Generates Sublime Text 2 project files.

    mingw32-make: *** No targets specified and no makefile found. Stop.
    터미널 프로세스 "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -Command cd C:\Users\SIM JUYONG\test-3 ; cmake . -G "MinGW Makefiles" ; mingw32-make"이(가) 종료되었습니다(종료 코드: 1).

    터미널이 작업에서 다시 사용됩니다. 닫으려면 아무 키나 누르세요.
    * 컴파일 실행하면 위와 같은 에러가 발생합니다....ㅠㅠ

  12. thumbnail
    2021.03.13 23:35

    비밀댓글입니다

  13. thumbnail
    Favicon of https://dlatkddnr123.tistory.com BlogIcon 우오쿠

    안녕하세요.
    라즈비안에서 8번 디버깅을 시도하고 있습니다.
    8.6번의 tasks.json 파일에서 minGW부분을 주석처리하여 사용하였고 바이너리 실행 부분도 우분투에 맞게 고쳤습니다.
    8.11의 launch.json 수정 부분 또한 exe확장자명을 사용하지 않았습니다.
    그 외는 모두 그대로 따라하였는데요 ㅠ
    8.12에서 다시 F5를 눌러 디버깅을 실행하면 launch: program'/home/pi/test-1/main' does not exist 이라며 취소 또는 launch.json열기 중 선택을 해야하는 창이 뜨네요.
    이러한 증상에 대해 혹시 도움을 받을 수 있을까요..?

    도움이 될까 싶어 터미널부분 또한 첨부합니다!
    > Executing task: cd /home/pi/test-1 && cmake . && make <

    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/pi/test-1
    Consolidate compiler generated dependencies of target test-1
    [100%] Built target test-1

  14. thumbnail
    Favicon of https://grgr21.tistory.com BlogIcon 뇽뇽이

    코린이입니다. 5-4번에 29번째, 60번째 줄 마지막에 prinft는 printf의 오타인것인가요??

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.03.23 23:18 신고

      제가 작성한부분이 아니라서 몰랐었는데 오타같습니다. 감사합니다.

    • thumbnail
      Favicon of https://grgr21.tistory.com BlogIcon 뇽뇽이
      2021.03.24 00:03 신고

      감사합니다! 혹시 7-2 디버깅 할 때 F5를누르면 C++(GDB/LLDB)를 누르면 g++.exe을 선택할 수 있게 뜨지않고 바로 launch.json창이 뜹니다. 어떻게 해결할 수 있나요?
      laucn.json 파일의내용은
      {
      // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
      // 기존 특성에 대한 설명을 보려면 가리킵니다.
      // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
      "version": "0.2.0",
      "configurations": [



      ]
      } 입니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.03.24 17:37 신고

      소스코드가 보이는 상태에서 F5를 눌러도 그런가요? 제대로 안만들어지는 경우 미리 만들어진 해당 파일을 가져다 사용하면 해결됩니다.

  15. thumbnail
    Favicon of https://choi1996.tistory.com BlogIcon 재렉

    안녕하세요, 친절한 글 너무 잘 읽었습니다.
    덕분에 설치를 무사히 마치고, tasks.json 파일까지 붙여넣기 하여 설정을 완료했습니다.

    하지만 hellow world 코드를 작성하여 5-8 과정에서 컴파일을 하는 도중 오류가 발생하여 질문 드립니다.
    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
    Executing task: gcc C:\C_C++_Projects\helloworld\hello.c -o C:\C_C++_Projects\helloworld/hello <

    gcc.exe: error: C:C_C++_Projectshelloworldhello.c: No such file or directory
    gcc.exe: fatal error: no input files
    compilation terminated.
    터미널 프로세스 "C:\Program Files\Git\bin\bash.exe '-c', 'gcc C:\C_C++_Projects\helloworld\hello.c -o C:\C_C++_Projects\helloworld/hello'"을(를) 시작하지 못했습니다(종료 코드: 1).
    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
    터미널에서 이러한 오류 문구가 발생하면서 실행이 되질 않습니다. 혹시 무엇이 문제인지 알려주실 수 있으신가요?

    감사합니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.04.01 21:04 신고

      명령은 제대로 실행된거 같은데 gcc 에 입력된 c파일의 경로에서 슬래시가 모두 사라졌네요. 첨보는 현상이라 해결방법은 알지 못하지만 다른 상황에서 이럴경우 슬래시를 2개 사용하면 해결했습니다.

  16. thumbnail
    Favicon of https://seung3.tistory.com BlogIcon seungsam

    C:\Users\Jo&Park>gcc-v
    'gcc-v'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
    배치 파일이 아닙니다.

    path에서 경로도 계속 확인했는데 저렇게 됩니다 해결방법 알고 계시면 답변 부탁드리겠습니다 ㅠㅠ

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.04.01 20:59 신고

      gcc만 입력해서 실행해보세요. path 설정후 명령 프롬프트창을 새로 열어야 적용됩니다

  17. thumbnail
    Favicon of https://ramza0925.tistory.com BlogIcon 태유아빠

    > Executing task: cd D:\005_Projectes\VSCode\C\test-1 && cmake . -G "MinGW Makefiles" && mingw32-make <

    'cmake'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
    배치 파일이 아닙니다.
    터미널 프로세스 "C:\WINDOWS\System32\cmd.exe /d /c cd D:\005_Projectes\VSCode\C\test-1 && cmake . -G "MinGW Makefiles" && mingw32-make"을(를) 시작하지 못했습니다(종료 코드: 1).

    이런 오류가 났는데 어떻게 해결해야 하나요?

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.04.27 18:34 신고

      cmake를 설치하실때 path에 경로를 추가했나요? 명령 프롬프트에서 cmake 실행하면 에러가 나지 않아야 합니다

  18. thumbnail
    Favicon of https://tjdwns4537.tistory.com BlogIcon CCoder

    단계별로 작성했는데, ctrl + alt + c 를 하고 c++을 선택하면 이러한 오류가 발생합니다.
    g++ : The term 'g++' is not recognized as a name of a cmdlet, function, or executable program.
    check the spelling of the name, or if a path was included, verify that the path is correct and try again.

    혼자 해결해보려 했는데 구글링해도 나오지가 않네요.. 혹시 이러한 에러가 나는 이유가 뭔지 알 수 있을까요??

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.06.26 16:56 신고

      2가지 원인이 예상되는데 비주얼 스튜디오 코드의 터미널에서 g++이 실행되나 보세요.

      그리고 터미널이 powershell로되있을 가능성이 있습니다. 아래 링크처럼 터미널을 명령 프롬프트로 바꿔보세요

      https://hianna.tistory.com/349

  19. thumbnail
    2021.06.28 16:18

    비밀댓글입니다

  20. thumbnail
    Favicon of https://eldertemp.tistory.com BlogIcon ElderTemp

    c/c++프로젝트 폴더에서 ctrl + f5 키를 "workbench.action.tasks.build" + "workbench.action.tasks.test" 키로 변경하고 execute 명령을 실행할지 뜨는 상단 팝업을 제거하고싶습니다. 방법이 있을까요

  21. thumbnail
    Favicon of https://knowledgeforengineers.tistory.com BlogIcon 공대생창고지기

    안녕하세요, 글 잘 읽었습니다. 덕분에 중간까지는 잘 설치했습니다.

    8번에서 CMake를 통해 컴파일하고 나서, 이상하게 실행이 ctrl + alt + r로 실행되지 않고 이런 메시지가 뜹니다.

    'c:\Users\jshac\Desktop\PJS\test\.'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
    배치 파일이 아닙니다.
    터미널 프로세스 "cmd.exe /d /c cmd /C c:\Users\jshac\Desktop\PJS\test\."이(가) 종료되었습니다(종료 코드: 1).

    비슷한 에러인지 디버깅도 되지 않고... 작성자님의 도움이 필요합니다.

    감사합니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.07.17 14:55 신고

      댓글 감사합니다.

      Visual Studio Code가 업데이트되면서 반뀐점 때문에 동작이 안되었네요.

      상대 경로로 폴더이름을 가져와야 하는데 .을 가져와서 생긴문제입니다.

      포스트를 수정해놓았으니 tasks.json 파일을 바뀌보세요