본문 바로가기
일상

[VSC] C,C++ task.json 설정방법 (무한 running task), 컴파일 실행 동시에 하기

by IT황구 2021. 8. 2.
728x90
반응형

빠르게 하겠습니다.

c, c++ task.json 인터넷대로 했더니, 실행창이 계속 돌기만 하고 실행이 안되는 경우가 있습니다.

이걸 제거하겠습니다. 아주 짜증이 납니다. 그냥 복붙만 다 했는지 하나도 안돼서 결국 직접 했습니다.

task.json (복붙 가능)

{
  "version": "2.0.0",
  "runner": "terminal",
  "type": "shell",
  "echoCommand": true,
  "presentation": {
    "reveal": "always"
  },
  "tasks": [
    //C++ 컴파일
    {
      "label": "C++ compile & execute",
      "command": "g++",
      "args": [
        "-g",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}",
        "&&",
        "${fileDirname}\\${fileBasenameNoExtension}.exe"
      ],
      "group": "build",
     
    
      "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": "C compile & execute",
      "command": "gcc",
      "args": [
        "-g",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}",
        "&&",
        "${fileDirname}\\${fileBasenameNoExtension}.exe"
      ],
      "group": "build",
  
      "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": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "group": "test",
     // "args": ["/C", "${fileDirname}\\${fileBasenameNoExtension}"]
    }
  ]
}

Args에 대한 설명

"args": [

"-g", -> 디버깅 옵션

"${file}", -> 파일 명

"-o", -> output 파일 뭘로 할지

"${fileDirname}/${fileBasenameNoExtension}", -> output 파일 명

"&&", -> 다음 명령

"${fileDirname}\\${fileBasenameNoExtension}.exe" -> exe 파일 실행하기

],

컴파일 하고 실행하는 옵션입니다.

저는 이걸 F10으로 뒀습니다. 그래서 F10하면 자동으로 컴파일 & 실행 합니다.

execute는 쓸일이 없더군요.

일단 열받는게 execute command를 cmd로 해놓으니까 자꾸 task가 계속 돌아가기만 하고 실행이 안됩니다.

근데 커맨드를 그냥 프로그램 실행으로 바꾸니까 잘 됩니다.

execute의 args 필요 없습니다. 그냥 커맨드로 실행해도 됩니다.

아오 열받아!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

여러분들은 부디 행복하시길 ^^ 열정 열정 열정^^

728x90
반응형