일상의 정리

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 를 해 주면 정상적으로 작동한다.