[Windows 환경] MSYS2, Clang64 및 Visual Studio Code

2024. 11. 25. 23:11프로그래밍

728x90

 

 

[Windows 환경] MSYS2, Clang64 및 Visual Studio Code 사용

OSRM 실행하기 - 오류 해결Chat gpt 와 함께 OSRM 빌드해보기 - 디버그모드저번 글에서 릴리즈 모드로 빌드를 성공하기는 했으나, 실행 시 오류로 인해서 디버그 모드로 빌드를 진행하다실패 했습니

tobee.tistory.com

저번 글에서 tasks.json, launch.json 을 만들어서 사용한다라고 했었습니다만, 오늘 VSCode 에서 사용해 보니 

잘못 된 사용 법인 것 같네요.

우선 CMake Tools 를 선택 하면,

Configure 부터 테스트 환경설정을 만들 수 있는 창이 나오네요. 각각의 편집 버튼으로 검색창이 다음과 같이 활성화 되는 듯 합니다.

원하는 컴파일러를 선택하는 화면이 되겠습니다.

 

Configure 설정

다음과 같이 Configure Args 에 원하는 옵션을 설정 할 수 있네요...

 

그런 다음 configure 버튼을 눌러 실행 해 주면,

그런 다음 빌드 순서로 진행 해 봅니다.

제대로 빌드 된 것을 확인해 볼 수 있었습니다.

 

디버깅해보기

그런 다음 디버깅을 해도록 합니다. 디버깅 아이콘을 클릭하여 다음과 같이 선택해 줍니다.

 

그리고 뒤져보다 알아낸 사실이지만 설정들이 기본 디렉토리에 생성 된 것을 확인 할 수 있었습니다.

위는 디버그 시에 아규먼트를 넣어준 모습입니다.

Launch 버튼을 눌러 주어야 하네요...

그런데...디버깅을 시작하면 내가 만들어 놓은 파일을 따라가기 시작하네요...

결국 .vscode 폴더 내에 launch.json과 tasks.json 파일을 참고 하네요.

 

launch.json

{
  "version": "0.2.0",
  "configurations": [

    {
      "name": "Debug OSRM",
      "type": "cppdbg",
      "request": "launch",
      "program": "C:\\DEV\\GIS\\OSRM\\osrm-backend\\build\\osrm-extract.exe",  // 빌드된 실행 파일 경로
      "args": [
             //   "run",
                "-p",
                "C:\\DEV\\GIS\\OSRM\\osrm-backend\\profiles\\car.lua",
                //"C:\\DEV\\SDK\\GIS\\OSRM\\Backend_Exec\\data\\south-korea-latest.osm.pbf"
                "C:\\DEV\\GIS\\OSRM\\Backend_Exec\\data\\seoul-non-military.osm.pbf"
            ],
      "stopAtEntry": false,
      "cwd": "C:\\DEV\\GIS\\OSRM\\osrm-backend",  // 작업 디렉토리 경로
      "environment": [],
      "externalConsole": true,  // 디버깅 시 콘솔을 별도로 열기
      "MIMode": "gdb",  // GDB 디버거 사용
      "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
      "miDebuggerPath": "C:\\DEV\\SDK\\msys64\\clang64\\bin\\gdb.exe",  // MSYS2의 GDB 경로 설정
      //"preLaunchTask": "Make Build",  // 디버깅 전에 빌드 작업을 실행
      //"miDebuggerArgs": "run -p C:\\DEV\\SDK\\msys64\\home\\User\\osrm-backend\\profiles\\car.lua C:\\DEV\\GIS\\OSRM\\Backend_Exec\\data\\south-korea-latest.osm.pbf ",  // GDB 인수
      //"miDebuggerArgs": "--cd=${workspaceRoot}", 
      "logging": {
        "moduleLoad": false,
        "programOutput": true,
        "engineLogging": false
      }
    }
  ]
}

tasks.json

{
	"version": "2.0.0",
	"tasks": [
	  {
		"label": "CMake Build",
		"type": "shell",
		"command": "cmake",
		"args": [
			"-G=MinGW Makefiles",
			"-DCMAKE_CXX_FLAGS=-g -Wa,-mbig-obj -Wmisleading-indentation -DTOBEE",
			"-DCMAKE_EXE_LINKER_FLAGS=-lws2_32 -lmswsock",
			"-DDOXYGEN_EXECUTABLE=OFF",
			"-DCMAKE_BUILD_TYPE=Debug",
			"-DCMAKE_SYSTEM_NAME=Windows",
			"-DBOOST_INCLUDEDIR=C:\\DEV\\SDK\\msys64\\clang64\\include\\boost",
			"-DBOOST_LIBRARYDIR=C:\\DEV\\SDK\\msys64\\clang64\\lib",
			"-DTBB_DIR=C:\\DEV\\SDK\\msys64\\clang64\\lib\\cmake\\TBB",
			"-DTBB_INCLUDE_DIR=C:\\DEV\\SDK\\msys64\\clang64\\tbb",
			"-DLUA_INCLUDE_DIR=C:\\DEV\\SDK\\msys64\\clang64\\",
			"-DLUA_LIBRARIES=C:\\DEV\\SDK\\msys64\\clang64\\lib\\liblua.a",
			"-DCMAKE_INSTALL_PREFIX=C:\\DEV\\GIS\\OSRM\\Backend_Exec\\Debug",
			"C:\\DEV\\GIS\\OSRM\\osrm-backend\\"
		],
		"group": {
		  "kind": "build",
		  "isDefault": true
		},
		"problemMatcher": []
	  },
	  {
		"label": "Make Build",
		"type": "shell",
		"command": "C:\\DEV\\SDK\\msys64\\clang64\\bin\\mingw32-make",
		"args": ["install"],
		"group": {
		  "kind": "build",
		  "isDefault": false
		},
		"problemMatcher": []
	  }
	]
  }
728x90