ld_cannot_find_-l_library_해결방법

ld: cannot find -l<LIBRARY> 해결방법

이강우 2020/10/19 14:21

리눅스에서 소스 컴파일을 진행하다 보면 아래와 비슷한 오류를 만나는 경우가 있다.

ld: cannot find -lcairo
ld: cannot find -lXrender
ld: cannot find -lfontconfig
ld: cannot find -lpixman-1
ld: cannot find -lfreetype
ld: cannot find -lexpat
ld: cannot find -lpng
ld: cannot find -lbz2
ld: cannot find -lpng
ld: cannot find -lXpm
ld: cannot find -lX11
ld: cannot find -lXext
ld: cannot find -lfl

이 오류는 컴파일 과정에서 라이브러리 링크에 필요한 라이브러리들이 없어서 발생하는 오류이다.
그렇다면 필요한 라이브러리를 설치해주기만 하면 해결되는데 필요한 라이브러리가 무엇인지 확인하기 위해서는

ld: cannot find -l 뒤에 오는 이름을 살펴보면 된다.

위의 경우중 ld: cannot find -lfreetypefreetype 이라는 라이브러리가 필요한것인데 리눅스 라이브러리는 보통 *.so, 또는 *.a 와 같은 파일명으로 되어있다.
따라서 해당 라이브러리가 있는 패키지명을 찾기 위해서 아래 명령어를 입력한다.

[root@dev ~]# yum provides */libfreetype.*

freetype-devel-2.9.1-4.el8.x86_64 : FreeType development libraries and header files
Repo        : @System
Matched from:
Filename    : /usr/lib64/libfreetype.so

위와같이 */lib<라이브러리명>.* 으로 검색하면 해당 라이브러리가 포함된 패키지가 무엇인지 찾을수 있다. 이후 해당 패키지를 설치해주면 된다.

로그인하면 댓글을 남길 수 있습니다.
  • ld_cannot_find_-l_library_해결방법.txt
  • 마지막으로 수정됨: 2020/10/19 05:28
  • 저자 koov