ImageMagic을 컴파일할 때 Fedora 33(libx265)의 잘못된 .so 파일

ImageMagic을 컴파일할 때 Fedora 33(libx265)의 잘못된 .so 파일

Fedora 33에서 컴파일하려고 합니다.이미지 매직자식에서.

libx265그리고 libheif패키지와 함께 Fedora 퓨전 저장소에서 설치하세요 -devel.

실행하면 ./configure --prefix=$HOME --program-prefix=p_다음 보고서가 표시됩니다.

  HEIC              --with-heic=yes     yes
  ...
  LIBS            =  -ljbig  -ltiff -lfreetype  -lraqm -lfreetype  -ljpeg   -llqr-1 -lglib-2.0  -lpng16 -lz    -lfftw3    -lfontconfig -lfreetype  -lheif  -lwebpmux -lwebpdemux -lwebp  -lwebp    -lXext -lXt   -lSM -lICE -lX11  -llzma  -lbz2 -lIlmImf -lImath -lHalf -lIex -lIexMath -lIlmThread -pthread  -lopenjp2  -lpangocairo-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lharfbuzz -lcairo    -lxml2   -lz  -lz      -lm    -lpthread 
  ...
  DELEGATES       = bzlib fftw fontconfig freetype heic jbig jng jpeg lqr lzma openexr openjp2 pango png ps raqm tiff video webp x xml ziplib zlib zstd

그러나 컴파일 후 바이너리는 잘못된 바이너리로 연결됩니다 libx265.so.

% ./p_magick --version
./p_magick: error while loading shared libraries: libx265.so.169: cannot open shared object file: No such file or directory

ldd바이너리 파일( p_magic내 경우에는)은 다음을 보여줍니다:

    libx265.so.169 => not found

(컴파일 과정은 표준 ./configure,, make)make install

다음을 설치하면 혼란스러워집니다 libx265.so.

% ll /usr/lib64/libx265*
lrwxrwxrwx 1 root root   14 08-19 03:29 /usr/lib64/libx265.so -> libx265.so.192*
-rwxr-xr-x 1 root root 4.6M 08-19 03:29 /usr/lib64/libx265.so.192*
-rwxr-xr-x 1 root root 5.6M 08-19 03:29 /usr/lib64/libx265_main10.so.192*
-rwxr-xr-x 1 root root 5.5M 08-19 03:29 /usr/lib64/libx265_main12.so.192*

어떤 이유로 내 시스템에 p_magick연결되어 있지만 설치되어 있는데 어떻게 잘못된 라이브러리에 연결되는지 잘 알 수 없습니다. 또한 코드 베이스 어디에서나 ImageMagick에 대한 언급을 찾는 데 어려움을 겪고 있습니다. 등. ).libx265.so.169libx265.so.192libx265grep

그렇기 때문에 오류가 ImageMagick이 아니라 시스템 구성으로 인해 발생한 것이라고 확신하지만 어디서부터 시작해야 할지 모르겠습니다.


부록

/etc/ld.so.cache을 사용하여 캐시를 삭제 하고 다시 만들었습니다 ldconfig.

ldconfig -p보여주다:

# ldconfig -p | grep libx265
    libx265_main12.so.192 (libc6,x86-64) => /lib64/libx265_main12.so.192
    libx265_main10.so.192 (libc6,x86-64) => /lib64/libx265_main10.so.192
    libx265.so.192 (libc6,x86-64) => /lib64/libx265.so.192
    libx265.so (libc6,x86-64) => /lib64/libx265.so

내부 링크 /lib64도 올바른 것 같습니다.

# ll /lib64/libx265.so           
lrwxrwxrwx 1 root root 14 Aug 19 03:29 /lib64/libx265.so -> libx265.so.192

하지만 오류가 여전히 존재합니다.

관련 정보