> 백엔드 개발 > C++ > 내 컴파일러에 'usr/bin/ld: can find -l'이 표시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?

내 컴파일러에 'usr/bin/ld: can find -l'이 표시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-21 15:16:14
원래의
256명이 탐색했습니다.

Why Does My Compiler Show

오류 발생: "usr/bin/ld: can find -l"

프로그램을 컴파일하려고 할 때 다음 오류 메시지가 나타날 수 있습니다.

usr/bin/ld: cannot find -l<nameOfTheLibrary>
로그인 후 복사

이 오류는 실행 파일을 링크하는 동안 링커가 지정된 라이브러리를 찾을 수 없습니다. 이 문제를 해결하기 위해 라이브러리 경로를 지정하는 방법과 링커를 올바른 위치로 연결하는 방법에 대해 자세히 알아보겠습니다.

라이브러리 검색 경로 추가

한 가지 가능 이 오류의 원인은 Makefile에 라이브러리 검색 경로가 없기 때문입니다. 이 문제를 해결하려면 링커 명령에 옵션을 추가하여 라이브러리를 찾을 위치를 지정할 수 있습니다.

예를 들어 라이브러리가 "/myLib"라는 디렉터리에 있는 경우 다음 줄을 추가할 수 있습니다. Makefile에:

LDFLAGS += -L/myLib
로그인 후 복사

이렇게 하면 링커의 검색 경로에 "/myLib"가 추가되어 링커가 library.

Symlinking Libraries

또 다른 가능한 문제는 라이브러리가 다른 라이브러리에 대한 심볼릭 링크라는 것입니다. 이러한 경우 링커가 기호 링크를 확인하는 데 문제가 있을 수 있습니다. 이 문제를 해결하려면 대신 버전이 지정된 라이브러리 파일에 대한 심볼릭 링크를 만드세요. 예를 들어 라이브러리 이름이 "myLib.so"이고 해당 버전 파일이 "myLib.so.1"인 경우 다음과 같이 심볼릭 링크를 만듭니다.

ln -s myLib.so.1 myLib.so
로그인 후 복사

상세 모드에서 링커 실행

추가 진단을 위해서는 링커를 상세 모드에서 실행하는 것이 좋습니다. 이렇게 하면 연결 프로세스에 대한 자세한 출력이 제공되고 추가 문제를 식별하는 데 도움이 됩니다.

ld -l<nameOfTheLibrary> --verbose
로그인 후 복사

출력을 검사하면 링커가 검색하는 내용을 확인하고 오류나 종속성 누락 문제를 해결할 수 있습니다.

위 내용은 내 컴파일러에 'usr/bin/ld: can find -l'이 표시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿