728x90
반응형
pkg-config는 소스 코드를 컴파일할 목적으로 설치된 라이브러리를 조회하기 위해 통일된 인터페이스를 제공하는 소프트웨어이다.
pkg-config는 설치된 라이브러리에 대해 다양한 정보를 출력한다.
- C, C++ 컴파일러를 위한 매개변수
- 링커를 위한 매개변수
- 패키지 버전
apt-get 등으로 library를 설치한 후, 컴파일에 필요한 header들과 so파일이 어디 있는지 찾기 힘들 때 사용할 수 있다.
gcc 옵션에 -I는 header 파일들이 위치한 폴더를 지정하고 -L 옵션으로 파일들의 경로를 지정하며 -l은 특정 so 파일을 지정한다.
● 설치된 라이브러리 목록 확인
$ pkg-config --list-all
728x90
● --libs, --cflags
아래와 같이 명령어를 입력하면 include 경로와 link 할 라이브러리 정보가 출력된다.
$ pkg-config --libs --cflags glib-2.0
실제 gcc를 이용하여 컴파일하는 경우에는 다음과 같이 작성한다.
$ gcc -o test test.c 'pkg-config --libs --cflags glib-2.0'
이러한 정보를 관리하는 파일은 '*.pc' 파일로 관리되며, 파일들은 /usr/lib/pkgconfig, /usr/local/lib/pkgconfig에 저장된다.
● pc 파일 확인
$ cat <파일명.pc>
기본적인 라이브러리의 이름과 정보, 버전이 있으며 컴파일에 필요한 include 경로 (CFLAGS)와 link 할 라이브러리 정보가 저장되어 있다.
파일에서 확일할 수 있듯, prefix를 사용하여 사용자가 다른 곳에 설치하여도 그 정보를 저장한다.
이렇게 pc파일이 작성되어 있기 때문에 pkg-config를 이용하면 컴파일 관련 정보를 쉽게 알아낼 수 있다.
$ pkg-config glib-2.0 --libs --cflags
● 컴파일
$ gcc -o test main.c `pkg-config --cflags --libs glib-2.0`
pkg-config를 이용하면 아래와 같이 일일이 입력하지 않아도 된다.
$ gcc -o test main.c -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -lglib-2.0
728x90
반응형