일상의 정리

vs code + CMake 디버깅 인수 전달하기

프로그래밍

vs code 프로젝트를 CMake로 구성 시 vs code F5로는 CMake 프로젝트 디버깅이 안된다.

따라서 Ctrl-F5로 디버깅을 진행해야 하는 데 이 때 인수 전달이 필요할 경우 아래 방법을 사용해야 한다.

1. .vscode 폴더에 settings.json 파일을 생성

2. 아래 내용과 같이 전달할 인수를 지정

{
    "cmake.debugConfig": {
        "args": [
            "arg1", "arg2", "arg3"
        ]
    }
}
이 후 Ctrl-F5 로 디버깅을 할 수 있다.

CMake Error: Could NOT find PostgreSQL 발생 시 해결방법

프로그래밍/C++

CentOS 8 기본 Cmake 에서 postgresql를 찾도록 할 경우 아래와 같은 CMake Error 가 발생할 수 있다. (주로 OS 디폴트 rpm을 설치한 경우에 발생한다).

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find PostgreSQL (missing: PostgreSQL_TYPE_INCLUDE_DIR) (found
  version "12.4")

위와 같은 경우 발생 시 아래 명령으로 파일을 수정한다.
아래서 파일의 위치는 위 에러메시지에 표시된 링크에 나와 있는 위치에 있다.

vi /usr/share/cmake/Modules/FindPostgreSQL.cmake

파일을 열어서 아래 부분을 찾는다.

set(PostgreSQL_KNOWN_VERSIONS ${PostgreSQL_ADDITIONAL_VERSIONS}
    "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0")

위 부분을 찾으면 아래와 같이 위에 포함되어 있지 않은 버전을 수동으로 추가해 준다 ("13 "12" "11" 부분).

set(PostgreSQL_KNOWN_VERSIONS ${PostgreSQL_ADDITIONAL_VERSIONS}
    "13" "12" "11" "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0")

위와 같이 수정 후에 다시 cmake 를 해 주면 정상적으로 작동한다.