소스로 설치한 라이브러리가 인식되지 않았던 이유를 드디어 알아내었다. ㅜ^ㅜ
http://www.experts-exchange.com/Operating_Systems/Linux/Q_21089716.html
http://www.linuxquestions.org/questions/showthread.php?t=230545
라이브러리가 설치 되었는지 안 되었는지는 pkg-config라는 녀석이 판단한다. 그 녀석이 어디어디를 뒤지는지를 지정을 잘못하면 설치가 안 되었다고 우기는 것이다.
환경변수 PKG_CONFIG_PATH를 수정해줘야 한다. 이 안에다가 xxx.pc파일이 존재하고 있는 디렉토리는 몽땅 추가해야 한다. (리눅스는 환경변수로 필요한 정보를 저장하고 있다. 윈도우도 그렇지만 별로 의식할 일은 없을 것이다.)
export PKG_CONFIG_PATH=xxx
라고하면 기존에 있던 내용이 다 없어지고 xxx라는 내용이 된다.
다 없애지 않고 단순히 path를 ‘추가’하려면
export PKG_CONFIG_PATH=/xxx/:$PKG_CONFIG_PATH
이렇게 하면 추가다. 참조해서 추가해야 되는 모든 디렉토리를 알고 싶으면
locate pkgconfig
명령어를 쳐서 존재하는 모든 pkgconfig라는 이름의 디렉토리를 모두 알아내서
export PKG_CONFIG_PATH=/xxx1:/xxx2:/xxx3:xxx4
이렇게 줄줄줄줄 다 적어줘야 한다. 그러면 이제 인식이 될 것이다.
(locate명령을 위해서는 updatedb를 실행시켜 하드의 내용물을 캐시시켜줘야 한다.)
제대로 설정되었는지 확인하려면
echo $PKG_CONFIG_PATH
라고 쳤을 때 무엇이 나오는지 확인해보면 된다.
매번 환경변수를 설정하기 귀찮으면...
~/.bashrc를 에디트 해서
export (무지무지 긴 변수)를 적어주면 된다.
나의 경우는, 받아서 컴파일 한 것과 rpm풀어서 된 glib이 다른 디렉에 설치되는 바람에, 둘 다 깔려있어서 문제가 있다 라고 @#$@#거리길래, 구버전의 pkgconfig에 들어가서 구버전의 reference를 없애버리는 방법을 취했다.
앗... 그래도 안 되는군 -_-; 이번에는 glib이 여러개라고 하면서 (필자는 설치하는 과정에서 glib이 두개가 되었다. 하나는 컴파일로 얻은 것, 하나는 rpm패키지에서 얻은 것이다.) 뷁! 할 수 없군... glib의 prefix를 바꿔서, 소스를 rpm 패키지 파일 위에 덮어씌워 설치하는 수밖에! 그러는 방법은? 구버전의 .pc파일을 참고해서, ./configure를 할 때 거기에 적힌 설치 디렉토리 정보들을 적용해준다.
주의: 이렇게 덮어씌우다 망했음. 그냥 예를 들어준 것이니 참고만 하시오 -_-;
---------------------------------------------------------------------
.pc파일엔 이렇게 있었다.
prefix=/usr
exec_prefix=/usr
libdir=/usr/lib
includedir=/usr/include
그래서 명령어를 ./configure --prefix=/usr --exec_prefix=/usr --libdir=/usr/lib --includedir=/usr/include 로 주었다.
다음은 ./configure --help의 일부다.
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data [PREFIX/share]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--infodir=DIR info documentation [PREFIX/info]
--mandir=DIR man documentation [PREFIX/man]
다시 gtk2.xx.. 를 컴파일 하니 성공이다. gtk를 컴파일 하기까지 무려... 48시간이 걸렸다 ㅜ.ㅜ;; 물론 여기에 적어 놓은 핵심만 따라가면 무지 쉽고 빠르게 될 것이다(?).