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