pkg-config를 통한 패키지 찾기 및 등록
pkg-config란
pkg-config는 소프트웨어 개발 시 필요한 라이브러리의 존재 여부와 관련 설정(예: 컴파일러 플래그, 링크 플래그 등)을 관리하고 제공하는 도구이다. 주로 C와 C++ 프로그램에서 라이브러리를 쉽게 사용할 수 있도록 도와주는 역할을 한다.
패키지 찾기
‘pkg-config –exists’ 명령은 특정 패키지가 설치되어 있는지 확인하는 데 사용한다. 이 명령은 주어진 패키지가 설치되어 있으면 0을, 그렇지 않으면 0이 아닌 값을 반환한다. 예를 들어, ‘glib-2.0’ 패키지가 설치되어 있는지를 확인하려면 다음과 같이 사용하면 된다.
1 | pkg-config --exists glib-2.0 |
새로운 패키지 등록하기
새로운 패키지를 등록하기 위해서는 ‘.pc’ 파일을 작성하여 ‘pkg-config’ 경로에 추가해야 한다. ‘.pc’ 파일은 패키지의 메타데이터를 포함하고 있으며 다음과 같은 정보를 포함한다.
- prefix: 패키지 설치 경로
- exec_prefix: 실행 파일 경로 (보통 ${prefix} 사용)
- libdir: 라이브러리 경로 (보통 ${exec_prefix}/lib 사용)
- includedir: 헤더 파일 경로 (보통 ${prefix}/include 사용)
- Name: 패키지 이름
- Description: 패키지 설명
- Version: 패키지 버전
- Libs: 컴파일러가 라이브러리를 링크할 때 사용하는 플래그
- Cflags: 컴파일러가 헤더 파일을 찾을 때 사용하는 플래그
예를 들어, ‘my-package’라는 패키지를 등록하려면 다음과 같은 내용을 가진 ‘my-package.pc’ 파일을 작성한다.
1 | prefix=/usr/local |
작성한 ‘.pc’ 파일은 ‘pkg-config’가 검색할 수 있는 경로에 복사해야 한다. 일반적으로 /usr/lib/pkgconfig 또는 /usr/local/lib/pkgconfig 디렉터리를 사용한다. 다음과 같이 복사하는 방법이 가장 간단하다.
1 | sudo cp my-package.pc /usr/local/lib/pkgconfig/ |
‘.pc’ 파일을 독립적인 위치에 보관해서 관리하고 싶다면, ‘PKG_CONFIG_PATH’ 환경 변수를 설정하여 다른 경로를 지정할 수도 있다.
1 | export PKG_CONFIG_PATH=/path/to/my-pc-files:$PKG_CONFIG_PATH |
간단히 다음과 같은 스크립트로 ‘my-package’ 패키지를 확인하고 사용할 수 있다.
1 | pkg-config --exists my-package |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.