"-l" 불일치로 인한 연결 오류 해결
프로그램을 컴파일할 때 "usr/bin/ld: can' 오류 메시지가 나타납니다. find -l
일반적으로 "l" 플래그는 링크할 라이브러리를 지정하지만 링커가 라이브러리를 찾을 수 없는 경우 이 오류가 표시됩니다. 이 문제를 더 자세히 진단하려면 링커가 무엇을 찾고 있는지 조사하는 것이 도움이 됩니다.
상세 모드 사용
링커는 찾으려고 하는 라이브러리입니다. 자세한 정보 표시 모드를 시작하려면 링커를 호출하기 전에 다음 명령을 사용하십시오.
LD_DEBUG=all
예를 들어 컴파일 중에 "usr/bin/ld: can find -lzlib" 오류를 고려해보세요. LD_DEBUG=all과 함께 다음 명령을 실행하면 자세한 디버깅 정보가 제공됩니다.
LD_DEBUG=all ld -lzlib --verbose
출력 디코딩
상세 모드 출력은 링커가 있는 특정 경로를 표시할 수 있습니다. 라이브러리를 찾고 있으며 필요한 파일을 찾을 수 있는지 여부입니다. 검색한 모든 디렉터리를 나열하고 해당 라이브러리 파일(.so 또는 .a)이 발견되었는지 여부를 나타냅니다.
문제 해결
자세한 내용이 있는 경우 출력에 실제 라이브러리 파일이 예상 경로에 존재하지 않는다는 메시지가 표시되면 올바른 위치에 대한 기호 링크를 제공해야 합니다. 예를 들어, ZLIB 라이브러리의 경우 다음 심볼릭 링크를 연결하면 문제를 해결할 수 있습니다.
sudo ln -s /usr/lib/libz.so.1.2.8 /usr/lib/libzlib.so
이 단계를 수행하면 누락된 라이브러리를 찾아내고 필요한 심볼릭 링크를 생성하여 라이브러리에 연결할 수 있습니다. 라이브러리 파일을 수정해야 컴파일이 성공적으로 진행될 수 있습니다.
위 내용은 내 컴파일러가 내 라이브러리를 찾을 수 없는 이유는 무엇입니까(-l 플래그 불일치)?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!