Linux 환경 변수는 전체가 아닌 경로를 사용합니다.

Linux 환경 변수는 전체가 아닌 경로를 사용합니다.

환경 변수 LD_PRELOAD를 내가 만든 공유 라이브러리 파일로 설정했습니다. LD_PRELOAD가 내가 만든 공유 라이브러리 파일을 가리키도록 하려면 다음과 같이 전체 경로를 제공해야 합니다.

export LD_PRELOAD=full/path/to/file.so

하지만 LD_PRELOAD를 공유 라이브러리에 지정하면 /usr/lib/전체 경로를 제공할 필요가 없고 루트 권한이 없으므로 공유 라이브러리 파일을 넣을 수 없습니다. /usr/lib/이 경우 환경을 어떻게 설정합니까? 아래와 같이 전체가 아닌 경로를 사용하는 변수 LD_PRELOAD:

 export LD_PRELOAD=file.so 

답변1

변수에 나열된 이름은 실행 파일 자체에 언급된 라이브러리 이름과 마찬가지로 LD_PRELOAD에서 조회됩니다 . $LD_LIBRARY_PATH따라서 미리 로드하려면 /full/path/to/file.so다음을 사용할 수 있습니다.

export LD_LIBRARY_PATH=/full/path/to
export LD_PRELOAD=file.so

관련 정보