을 사용하여 pkg-config
내 코드에 라이브러리를 추가하는 데 필요한 링크 플래그를 찾을 수 있다고 가정하고, cairo 라이브러리를 추가해야 하는 경우 다음을 -l
통해 적절한 플래그를 찾을 수 있다고 가정합니다.
> pkg-config --libs cairo
> -lcairo
반대(예: 링크 플래그 -> 라이브러리 이름)를 어떻게 찾나요? flag 를 호출하여 어떤 라이브러리가 추가될지 알고 싶다고 가정해 보겠습니다. -lm
어떻게 해야 합니까?
답변1
-lm 플래그를 호출하여 어떤 라이브러리가 추가될지 알고 싶다고 가정해 보겠습니다. 어떻게 해야 합니까?
다음 부분은 -l
라이브러리의 이름입니다. 해당 바이너리에는 접두사가 붙으므로 lib
해당 이름으로 찾을 수 있습니다.
> whereis libm
libm: /usr/lib64/libm.a /usr/lib64/libm.so
> whereis libcairo
libcairo: /usr/lib64/libcairo.so
등.
그래도 설명이 없으면 whereis
grep의 출력을 시도해 볼 수도 있습니다 ldconfig -p
(참고자료 참조 man ldconfig
).
> ldconfig -p | grep "libm.so"
libm.so.6 (libc6,x86-64, OS ABI: Linux 2.6.32) => /lib64/libm.so.6
libm.so.6 (libc6, OS ABI: Linux 2.6.32) => /lib/libm.so.6
libm.so (libc6,x86-64, OS ABI: Linux 2.6.32) => /lib64/libm.so
이 경우에는 "libm" 뒤에 ".so"를 추가했는데 이는 필수는 아니지만 "libmfoo...", "libmbar..." 등과의 일치 항목을 저장합니다. -l
Linked Shared Object( ) 라이브러리를 참조하므로 매우 .so
간단합니다.