간단한 C ++ 프로그램을 작성 중이며 개발 및 테스트를 위해 시스템 제공 공유 라이브러리를 최신 버전으로 일시적으로 대체하고 싶습니다.
LD_LIBRARY_PATH 변수 설정을 시도했지만 링커 (ld)가 실패했습니다.
/ usr / bin / ld : -lyaml-cpp를 찾을 수 없습니다
ld man 페이지에 따르면 작동 할 것으로 예상했습니다.
링커는 다음 검색 경로를 사용하여 필요한 공유 라이브러리를 찾습니다. ... 기본 링커의 경우 환경 변수 "LD_LIBRARY_PATH"의 내용 ...
그런 다음 LIBRARY_PATH 설정을 시도했지만 작동했습니다.
GCC 매뉴얼에 따르면 :
LIBRARY_PATH의 값은 PATH와 같이 콜론으로 구분 된 디렉토리 목록입니다. 네이티브 컴파일러로 구성 될 때 GCC는 GCC_EXEC_PREFIX를 사용하여 찾을 수없는 경우 특수 링커 파일을 검색 할 때 지정된 디렉토리를 시도합니다. GCC를 사용한 링크는 또한 -l 옵션에 대한 일반 라이브러리를 검색 할 때 이러한 디렉토리를 사용합니다 (그러나 -L로 지정된 디렉토리가 우선 함).
(GCC) 매뉴얼에서 알 수 있듯이 GCC와 연결되므로 LIBRARY_PATH가 작동합니다.
그러나..
- 오류 메시지에서 알 수 있듯이 gcc와 ld가 호출되는 이유는 무엇입니까?
- 동일한 목적을 달성하는 두 변수를 갖는 점은 무엇입니까? 다른 차이점이 있습니까?