컴파일 타임에 빌드되는 바이너리에 런타임에 특정 라이브러리를 찾는 경로를 알려주는 것이 가능합니까? 예를 들어, 비표준 위치에 있는 공유 라이브러리에 대해 링크할 때 결과 바이너리를 실행하려면 해당 공유 라이브러리의 경로를 LD_LIBRARY_PATH에 추가해야 하며, 해당 단계를 생략하고 바이너리가 런타임 시 공유 라이브러리의 위치를 알 수 있도록 하는 옵션입니다.
우분투 14.04, GCC.
답변1
-Wl,-rpath,'/path/to/library'
예, GCC에 매개변수를 추가하면 가능합니다. 이는 링커가 -rpath '/path/to/library'
호출될 때 실행되도록 지시합니다.
일반적으로 다음을 추가하여 대부분의 autoconf 기반 make 파일에 이를 추가할 수 있습니다.
LDFLAGS=-Wl,-rpath=/path/to/library
컴파일 타임 환경.
평소처럼,Wikipedia의 RPATH 기사모든 세부 사항이 있습니다.
답변2
예. 이러한 단계는 사용되는 컴파일러와 링커에 따라 다릅니다.
GNU cc 컴파일러의 경우 추가하면 -Wl,-rpath=/home/me/lib
런타임이 연결해야 하는 라이브러리를 검색하는 위치에 /home/me/lib가 추가됩니다.