![Linux 환경 변수는 전체가 아닌 경로를 사용합니다.](https://linux55.com/image/5832/Linux%20%ED%99%98%EA%B2%BD%20%EB%B3%80%EC%88%98%EB%8A%94%20%EC%A0%84%EC%B2%B4%EA%B0%80%20%EC%95%84%EB%8B%8C%20%EA%B2%BD%EB%A1%9C%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%A9%EB%8B%88%EB%8B%A4..png)
환경 변수 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