Ubuntu에서 -ljpeg로 구축된 공유 라이브러리가 Debian에서 작동하지 않습니다.

Ubuntu에서 -ljpeg로 구축된 공유 라이브러리가 Debian에서 작동하지 않습니다.

C로 공유 라이브러리를 만들고 있습니다. 이 라이브러리는 libjpeg 및 X api에 의존합니다. Ubuntu 18.04 운영 체제에서 빌드하고 다음 명령을 사용하여 빌드했습니다 gcc mycode.c -o libname.so --shared -lX11 -lXss -lXExt -ljpeg -fPIC.

Debian OS와 같은 Debian 기반 운영 체제에서 이 라이브러리를 사용하고 싶습니다. Debian 9.9에서 이 라이브러리의 함수를 호출하면 예외가 발생합니다 Unable to load a file libname.so or one of it's dependencies. 하지만 데비안에서 동일한 명령을 사용하여 이 C 코드를 빌드하고 추가로 사용하면 모든 것이 잘 작동합니다.

내 생각엔 문제는라이브러리 파일우분투에서는 다음과 같은 파일을 사용하기 때문에라이브러리 파일하지만 데비안에는 같은 이름을 가진 라이브러리가 없습니다.libjpeg-터보.

Ubuntu에서 라이브러리를 구축한 다음 다른 Debian 기반 시스템에서 사용하는 방법을 이해하도록 도와주세요.

또한 저는 Linux 배포판과 배포판 간의 차이점에 대한 전문가가 아니며, 제가 하려는 작업이 불가능하다면 시간을 낭비하게 되어 죄송하다는 점을 말씀드리고 싶습니다.

답변1

이 작업을 수행할 때:

ldd path/to/your/libname.so

데비안 시스템에서는 ldd라이브러리가 링크되어 있다고 생각하는 것과 ld.so가 나열된 라이브러리를 확인/찾을 수 있는지 여부가 표시됩니다.

이를 통해 실제 문제가 무엇인지, 데비안 시스템에 어떤 종속성/라이브러리가 누락되었는지 알려줄 것입니다.

더 나은 방법은 다음과 같습니다.

ldd path/to/the/executable_that_links_to_libname

이는 위에서 생략한 정보를 귀하(그리고 여기 있는 우리)에게 보여주기 때문입니다.

관련 정보