/usr/lib64/libfreetype.so에 freetype 라이브러리 버전 1.4를 설치하고 /usr/local/lib/libfreetype.so에 다른 버전의 라이브러리를 컴파일하고 설치했다고 가정합니다. 프리타입이 필요한 소프트웨어를 빌드할 때 빌드 시스템(make)은 어떤 버전을 사용할지 어떻게 알 수 있나요?
답변1
TL;DR 버전: 상황에 따라 다릅니다.
- 운영 체제: 라이브러리 검색에 사용되는 경로를 등록하는 운영 체제별 환경(
LD_LIBRARY_PATH
) 구성 파일 또는 명령(예: ) 이 있을 수 있습니다 .ldconfig(8)
- 빌드 시스템: 있을 수 있음환경 변수
LDFLAGS
시스템(또는 사용자)이 사용자 정의 경로 아래에 ncurses를 가지고 있는 경우 명령줄 플래그 또는 구성 파일 설정 등입니다mutt
.--with-curses=[dir]
이는 빌드 시스템(또는 플레이버make
)에 따라 다르며 autoconf 또는 cmake 파일에 수동으로 작성해야 할 수도 있습니다. - 빌드 후 구성:
patchelf
(사용 가능한 경우) 등의 도구를 사용하면 다른 라이브러리를 선택하거나 검색 경로를 변경할 수 있습니다.
답변2
libxxx.so
일반적으로 이름에 버전이 포함된 공유 라이브러리 파일에 대한 심볼릭 링크입니다.
링크를 사용하는 경우 -lxxx
이 파일을 사용하세요.libxxx.so
다른 버전에 연결하려면 라이브러리의 전체 경로 이름을 지정해야 합니다.