2011. 1. 5. 21:30

log4cxx linux(리눅스) 빌드.


 오랜만에 나타나서 log4cxx 빌드 및 사용 팁을 간단하게 올립니다.

 보통 root권한의 경우엔 /usr/local 에 설치하는게 보통이지만, 저는 공용 서버에서 일반사용자 권한으로 사용하기 때문에 경로는 사용하는 사람의 입맛에 따라 바꿔주시면 됩니다.

 그리고 wget을 이용해서 얻어온것이니 wget이 없거나, 별도로 다운받아 사용하실 분들은 apache 홈페이지에서 직접 다운받아 사용하셔도 됩니다.

1. apr(Apache Portable Runtime) 다운로드 및 빌드.

 ~/$ cd src
 $ wget http://apache.tt.co.kr//apr/apr-1.4.2.tar.gz

 $ tar -xvzf apr-1.4.2.tar.gz

 $ cd apr-1.4.2
 $ ./configure --prefix=~/src/apr-1.4.2

 $ make

 $ make install
 $ ln -s ~/src/apr-1.4.2 ~/lib/apr


2. apr-util 다운로드 및 빌드

 ~/$ cd src
 $ wget http://apache.tt.co.kr//apr/apr-util-1.3.10.tar.gz

 $ tar -xvzf apr-util-1.3.10.tar.gz

 $ cd apr-util-1.3.10
 $ ./configure --prefix=~/lib/apr --with-apr=~/lib/apr

 $ make

 $ make install
 
3. log4cxx 다운로드 및 빌드

 ~/$ cd src
 $ wget http://apache.mirror.cdnetworks.com//logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.tar.gz

 $ tar -xvzf apache-log4cxx-0.10.0.tar.gz

 $ cd apache-log4cxx-0.10.0
 $ ./configure --prefix=~/src/apache-log4cxx-0.10.0 --enable-cppunit --with-apr=~/lib/apr --with-apr-util=~/lib/apr --with-charset=utf-8

 $ make

 ※ log4cxx 0.10.0 릴리즈된 버전을 다운받아 컴파일 하면 리눅스에서 컴파일 에러납니다. log4cxx repository 보면 수정사항이 있으나, 세가지 수정사항 때문에 svn checkout 받기엔 좀 -.-;;
  에러나는 부분은 세곳입니다. 
 (1) src/main/cpp/inputstreamreader.cpp 의 상단에 "#include <string.h>" 추가
 (2) src/main/cpp/socketoutputstream.cpp 의 상단에 "#include <string.h>" 추가
 (3) src/examples/cpp/console.cpp 의 상단에 "#include <stdio.h>" 와 "#include <string.h>" 추가

 $ make install


빌드는 완료되었습니다. 이제 사용법을 알아야겠죠. 뭐 라이브러리 링크하는게 뭐 어렵다고 할지 몰라도... 이게 리눅스 라이브러리 링크에 대한 이해가 없으면 좀 햇갈릴 수도 있으니 그냥 간단히 몇문장 더 달겠습니다.
(전 아직도 헷갈림 -.-;)

일단 사용 편의성을 위해 환경 PATH (export) 등록하면 편하겠지만, 사실상 로깅라이브러리는 서버프로그램을 제외하곤 사용할 곳이 많지 않기때문에 링크정도만 하겠습니다.

4. log4cxx 라이브러리 링크 방법

 $ ln -s ~/src/apache-log4cxx-0.10.0 ~/lib/log4cxx
 $ ln -s ~/lib/log4cxx/lib/liblog4cxx.so ~/lib/liblog4cxx.so
 $ ln -s ~/lib/log4cxx/lib/liblog4cxx.so.10 ~/lib/liblog4cxx.so.10


 위 심볼릭링크만 생성해주고 gcc 컴파일시 include 옵션과 library link 옵션만 아래와 같이 주면 됩니다.
 INC = -I~/lib/log4cxx/include
 LIB = -llog4cxx -L~/lib/log4cxx/lib

(사실 위에 심볼릭 링크를 왜 인식 못하는지 모르겠습니다 -.- 일단 귀찮으니 내비뒀슴니다.)



이제 include 해서 사용하면 됩니다.
상세한 사용법은 나중에 -_-z