C 링크에서 라이브러리 경로 기본 설정 지정
C 프로그램을 외부 라이브러리와 연결할 때 특정 라이브러리 경로에 대한 기본 설정을 제어하는 것이 어려울 수 있습니다. . 예를 들어 /my/dir에 libfoo.so.0이라는 로컬 라이브러리가 있지만 동일한 이름을 가진 다른 라이브러리가 /usr/local/lib에 있는 경우 링커는 후자에 우선 순위를 지정할 수 있습니다.
해결책 1: LD_LIBRARY_PATH 사용
가장 간단한 해결 방법은 새 라이브러리가 있는 경로를 LD_LIBRARY_PATH 환경 변수에 추가하는 것입니다. 런타임 시 프로그램은 라이브러리의 표준 위치보다 먼저 이 경로를 검색합니다. 그러나 LD_LIBRARY_PATH 사용과 관련된 잠재적인 보안 및 성능 영향에 주목할 가치가 있습니다.
해결책 2: -Wl,-rpath 옵션 사용
또는 다음을 사용할 수도 있습니다. -Wl,-rpath,$(DEFAULT_LIB_INSTALL_PATH) 컴파일러 옵션은 gcc를 통해 링커가 표준 디렉터리 대신 런타임 라이브러리 검색 경로를 사용하도록 지시합니다. 이 옵션은 임시 해결 방법으로 사용할 수 있으며 원하는 경우 시스템의 기본 라이브러리 검색 경로를 영구적으로 수정할 수 있습니다.
라이브러리 정보 확인
라이브러리를 확인하려면 링커가 인식하는 경우 다음 명령을 사용할 수 있습니다.
<code class="bash">/sbin/ldconfig -p | grep libpthread</code>
마찬가지로 응용 프로그램이 활용하는 라이브러리를 검사하려면 다음을 사용합니다.
<code class="bash">ldd foo</code>
다음 단계를 수행하면 C 프로그램의 연결 프로세스 중에 라이브러리 경로에 대한 기본 설정을 효과적으로 지정할 수 있습니다.
위 내용은 C 링크에서 라이브러리 경로 기본 설정을 제어하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!