본문 바로가기
취미/linux 기초

pkg-config 사용법

by 심심해43 2022. 10. 25.
반응형

linux에서 테스트 및 개발을 하다 보면  설치된 라이브러리 등의 정보를 알아야 할 때가 있습니다.

 

자주 쓰는 것이야 외우면 되지만,  모든 경로를 다 외울 수도 없고, 외울 필요도 없었습니다.  

 

사용법을 간단히 보면 다음과 같습니다. 

우선  pkg-config --list-all  를이용해 현재 등록된 리스트를 전부 볼수있습니다. 

이름/버전등을 정확히 확인하는 용도로 좋습니다. 

 

 

1.  version info 

$ pkg-config   opencv  --modversion 

3.3.1 

 

2.  --libs  , --cflags

라이브러리등이 설치될 때 한 곳에만 설치되는 게 아니라,  /lib   /usr/lib   /usr/local/lib   등에 설치 되게 되는데..

경로 설정에 따른 에러로 인해 시간을 낭비하는 경우가 많습니다. 

이런 경우 설치된 LIB의  정보 *.PC  파일을 확인하여 간단하게 출력해볼 수 있습니다. 

$ pkg-config opencv --libs --cflags
-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core

 

3. 컴파일시 긴 경로를 적지 않고,  간단하게 옵션을 정리할 수 있습니다. 

$ gcc -o   test   main.c `pkg-config --cflags --libs opencv`

 

4. 크로스 컴파일등을 진행할 때는  HOST PC 에있는 라이브러리를 이용하지 않을 수 있기 때문에  

별도의 설정이 필요할수 있는데..  이때는 pkg-config 의 경로를 크로스컴파일 하려는 위치로 변경하여 

설정 진행할 수 있습니다. 

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/~~~/pkgconfig"

 

혹시나 현재 export PKG_CONFIG_PATH 되어있는 설정을 확인 하고 싶으면 출력이 가능합니다.

$ echo $PKG_CONFIG_PATH

 

 

전체 pkg-config 를 모두 확인 할면 다음 명령어로 확인이 가능합니다.

$ locate pkgconfig

~~~~~

/usr/lib/pkgconfig
/usr/lib/pkgconfig/ibus-table.pc
/usr/lib/pkgconfig/libquvi-scripts.pc
/usr/lib/pkgconfig/log4cpp.pc
/usr/lib/pkgconfig/pm-utils.pc

~~~~~~(전체가 모두 나온다.)

 

 

댓글