역방향 패키지 구성?

역방향 패키지 구성?

을 사용하여 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

등.

그래도 설명이 없으면 whereisgrep의 출력을 시도해 볼 수도 있습니다 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..." 등과의 일치 항목을 저장합니다. -lLinked Shared Object( ) 라이브러리를 참조하므로 매우 .so간단합니다.

관련 정보