답변:
distro-independent * 방식으로이를 수행하려면 다음과 같이 grep과 함께 ldconfig를 사용할 수 있습니다.
ldconfig -p | grep libjpeg
libjpeg가 설치되어 있지 않으면 출력이 없습니다. 설치되어 있으면 사용 가능한 각 버전에 대한 줄이 표시됩니다.
libjpeg를 원하는 라이브러리로 바꾸십시오. 라이브러리 가용성을 확인하는 일반적인 배포와 무관 한 * 방법이 있습니다.
어떤 이유로 ldconfig의 경로가 설정되지 않은 경우 일반적으로 전체 경로를 사용하여 경로를 호출 할 수 있습니다 /sbin/ldconfig
.
** 99 %의 시간 *
bash: ldconfig: command not found
xfce로 데비안 x64 Jessie에서! 이것은 데비안 웹 사이트에서 권장되는 데비안 릴리즈입니다 ...
ldconfig
를 사용할 수 없습니다 ( command not found
표시됨).
/sbin/ldconfig -p
뿌리가 될 필요없이 나를 위해 일합니다.
배포판의 패키지 관리자 (attitude, yum, ...)를 통해 확인할 수 있지만 배포판을 제공하지 않았으므로 올바른 명령을 제공 할 수 없습니다.
gcc -ljpeg
'ld : -ljpeg에 대한 라이브러리를 찾을 수 없음'이 표시되면 다른 방법으로 실행할 수 있습니다 . '정의되지 않은 기호' : "_main", 참조 : ... 'libjpeg가 발견되었음을 의미합니다.
locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg*
lib가 시스템에 설치되어 있는지 확인하는 다른 방법입니다.
더 많은 컨텍스트를 제공하면 (libjpeg가 설치되어 있는지 확인해야하는 이유), 특정 상황에 가장 적합한 솔루션을 제공 할 수 있습니다.
whereis 유틸리티를 사용 합니다.
견본:
l1feh4ck3r@xxx:~$ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la
deb 기반 배포의 경우 다음을 수행 할 수 있습니다.
dpkg -s packagename
또는 파일 이름 만 알고 있다면
locate filename
파일 이름은 일반적으로 libsomething.so [.version]입니다.
dpkg -s
는 라이브러리 자체에서 미묘하게하거나 현저하게 다를 수 있습니다 실제 패키지 이름을 원하기 때문에, 유틸리티 제한. 저는 다음을 사용합니다dpkg -s|grep LIBRARY
Redhat 기반 시스템에서는 pkg-config를 사용하여 라이브러리가 설치되어 있는지 여부를 확인할 수 있습니다. 많은 rpm 바이너리는 실제로 설치를 진행하기 전에 동일한 검사를 수행하므로 그 정확성에 합리적으로 의존 할 수 있습니다.
pkg-config --cflags jpeg
pkg-config --libs jpeg
pkg-config --cflags "jpeg >= 1.0.0" # for version check
pkg-config --modversion jpeg | awk -F. '{ printf "0x%02X%02X%02X\n",$1,$2,$3 }' #version check
이것은 항상 리눅스의 구성 도구에 의해 수행됩니다.
autoconf 및 KDevelop에 대한 이 자습서를보십시오 .
다른 트릭은 ldconfig
and과 같은 명령을 사용합니다 dpkg
.
dpkg를 사용하여 설치되어 있는지 확인할 수도 있습니다.
dpkg --list | grep [some_key_words_of_your_lib]
게다가 CentOS에서는 이것을 시도 할 수 있습니다.
rpm -qa [lib_name]
pkg-config
대신 사용하십시오.