Unix/Fedora Core 4

MPlayer 컴파일로 설치하기 - 2: GTK 컴파일 하기.

ForceCore 2006. 2. 27. 05:21

 
소스로 설치한 라이브러리가 인식되지 않았던 이유를 드디어 알아내었다. ㅜ^ㅜ

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시간이 걸렸다 ㅜ.ㅜ;;  물론 여기에 적어 놓은 핵심만 따라가면 무지 쉽고 빠르게 될 것이다(?).