컴파일 오류 : /usr/bin/ld: cannot find -lgtk-3에 대한 대책 |
소스를 컴파일하다보면 다음과 같이 라이브러리 링크 문제가 발생되는 경우가 있습니다.
/usr/bin/ld: cannot find -lgtk-3
/usr/bin/ld: cannot find -lgdk-3
collect2: error: ld returned 1 exit status
설치된 RPM 패키지에도 lib64gtk+3 라이브러리가 설치되어 있는데도 말이죠.
[root@ecs build]# rpm -qa | grep lib64gtk
lib64gtk+3_0-3.22.29-1pclos2018
lib64gtkmm2.4_1-2.24.5-3pclos2017
lib64gtkhtml2_0-2.11.1-4pclos2014
lib64gtkmm3.0_1-3.22.2-1pclos2017
lib64gtk+-x11-2.0_0-2.24.32-1pclos2018
lib64gtk+2.0_0-2.24.32-1pclos2018
lib64gtk+3.0-devel-3.22.30-2pclos2018
lib64gtk+2.0_0-devel-2.24.32-1pclos2018
이런 경우에는 십중팔구 라이브러리 심볼릭 링크가 깨져 있을 가능성이 높습니다. 예전에는 문제가 없었지만, 어느날부터 이러한 현상이 발생되었다면 심볼릭 링크를 먼저 확인해 볼 필요가 있습니다.
상기 화면을 보는 바와 같이 심볼릭링크가 깨져 있음을 알 수 있는데, 깨어진 심볼릭 링크는 3.22.30 버전으로 되어 있지만, 실제 설치된 것은 3.22.29 버전으로 링크되어 있어 문제가 발생하는 것입니다. 이것은 lib64gtk+3_0 패키지가 올바르게 설치되지 않아 발생되는 것이므로, 이 패키지를 설치해 주던가 아니면 기존 버전(libgtk-3.so.0.2200.29)으로 심볼릭 링크를 다시 해 주면 됩니다.
[root@ecs build]# ls -l /usr/lib64/libgtk*
lrwxrwxrwx 1 root root 21 4월 25 15:04 /usr/lib64/libgtk-3.so -> libgtk-3.so.0.2200.30
lrwxrwxrwx 1 root root 21 3월 26 21:37 /usr/lib64/libgtk-3.so.0 -> libgtk-3.so.0.2200.29*
-rwxr-xr-x 1 root root 7317816 3월 15 09:14 /usr/lib64/libgtk-3.so.0.2200.29*