>백엔드 개발 >C++ >C 링크에서 라이브러리 경로 기본 설정을 제어하는 ​​방법은 무엇입니까?

C 링크에서 라이브러리 경로 기본 설정을 제어하는 ​​방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-24 02:52:29693검색

How to Control Library Path Preference in C   Linking?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.