예전에 포스팅 했던 것 처럼, log4cxx라는 log4j 프로젝트의 하위 프로젝트로 존재하는 C++ 용의 로깅 라이브러리가 있다. 다음의 내용은 이 라이브러리의 현재 HEAD 리비젼인 611128 (2008-01-10 15:26:45 +0900)을 빌드하는 과정의 이야기이다(좀 긴관계로 두 개로 나눠서(…)). 일단 빌드 환경은,
- Microsoft Visual Studio 2005
- Windows XP w/ SP2 32bit edition
- Subversion 1.6 (Win32)
- Apache Ant 1.7.0
- Java SDK 1.6.0_03
에서 여기에 서술되지 않은 툴들을 설치하면서 진행된다.
일단 목표는 다음과 같은 빌드 파일을 만들어내는 일이다.
- VS 2005 에서 제대로 빌드 될 것
- wchar_t 지원
- Debug 빌드 뿐아니라 Release 빌드의 설정도 포함되야
이 요구사항을 만족시키려면 아마도 간단한 script 정도는 추가해야한다고 가정하면서 진행했다. 이제 진행과정.
1. log4cxx HEAD revision 체크아웃
svn head revision을 구해온다.
D:\log4cxx> svn checkout http://svn.apache.org/repos/asf/logging/log4cxx/trunk apache-log4cxx
…잠시 후 체크아웃 종료
2. Ant 를 설치한다
이미 설치된 관계로 뛰어넘은 부분이지만, 설치되지 않았다면 http://ant.apache.org/ 에서 Ant 유틸리티를 받아서 설치하고 (물론 실행경로;PATH 환경변수도 수정해준다) JRE도 적당히 받아서 설치해주자 (이번엔 JDK도 있어서 건너 뛰었다).
Ant 만으로는 log4cxx를 만들어낼 수 없다. http://ant-contrib.sourceforge.net/ 에 가서 ant-contrib 과 cc-task를 받아서 설치하자. (설치 경로는 ant가 설치된 곳\lib\ 밑이면 된다; 아니면 java class path를 적당히 손봐줘도 된다)
3. 기타 라이브러리 확인
APR;apache portable runtime과 APRUtil 두 가지가 필요하다. 인터넷 연결이 존재한다면 보통 자동으로 다운로드 되지만 그렇지 않은 경우 미리 받아둬야 한다. http://apr.apache.org/ 에 가면 찾을 수 있다.
4. VC++ 2008 project 생성
D:\log4cxx\apache-log4cxx>ant build-projects-vc8
D:\log4cxx\apache-log4cxx\msvc8 이란 디렉토리에 생성된 .vcproj 들을 확인할 수 있다. 그렇지만 프로젝트 파일들 뿐이므로 바로 빌드 하기는 귀찮은 일이니 solution 파일을 만들어보자. 일단 프로젝트 파일들을 확인해보면, 일단 가장 중요한(?) 셋이
- apr.vcproj – APR 을 위한 프로젝트
- aprutil.vcproj – APRUtil 을 위한 프로젝트
- log4cxx.vcproj – log4cxx 를 만들기 위한 프로젝트
그리고 테스트 목적의 실행 파일들이,
- cppunit.vcproj – C++ unittest 프레임웍
- log4cxx-standalone-test.vcproj – 이 밑의 프로젝트들은 문자 그대로 해당하는 테스트를 위한 것
- log4cxx-test.vcproj
- performance.vcproj
- console.vcproj
- stream.vcproj
- trivial.vcproj
들어있다. 이 것들은 잠시 신경을 끄고(…) 원래의 목적에 맞게 빌드되려면 헤더 경로같은게 아예 하드 코딩으로 절대경로가 되어있는 관계로,
- Header 파일 경로 (절대경로 → 상대경로)
- Library 파일 경로 / Object code 생성 위치 (이것도 적당히 MSVC++ 컨벤션으로)
- 몇 가지 프리프로세서 옵션
등을 설정해줘야 한다. 이 과정은 다음 포스팅에 정리해보겠다[…].
난 로그 남기는게 이리 빡센일일줄 몰랐는데… log4j로 NFS디렉토리에 로그 와다다닥(한 40대?) 남기니 Write failed 뜨면서 돌아가셔버리더라는… 로깅부터 일이야 일… ㅠㅠ
…형 대체 NFS에 무슨 짓을
안녕하세요
혹시 이 코멘트를 읽으실지 모르지만 한번 남겨봅니다.
log4cxx 빌드하기를 따라해보다가 막히는 곳이 있어
염치 불구하고 어떻게 빌드를 성공 하셨는지 자세히 알수 있을까
하고 코멘트를 남깁니다.
제가 했던 과정은 http://neojojo.springnote.com/pages/855130
여기를 보시면 되구요.
이메일은 neojojo@nate.com 입니다.
답변 주시면 정말 감사하겠습니다.
좋은 하루 되십시오.
퇴근 후에 확인해보겠습니다 (__)
감사합니다 (__)
neojojo / CPPTask 의 버젼 문제입니다. (ant-contrib에 있는 CC Task)
Sourceforge.net 에는 2006년 말에 올라온 파일이 마지막인데 그 파일로는 comment element가 nesting된다는 에러를 뱉습니다.
log4cxx 메일링에 따르면 그 cpptasks.jar 파일로 빌드가 되지 않아서 (cpptask의)SVN head를 받아다가 빌드할 것을 알리고 있습니다.
log4cxx 0.10 RC2 공개…
rein이 사용 중인 C++ 용 logging 라이브러리인 log4cxx에 대해 예전에 포스팅한 글에 질문이 붙어서 간만에 메일링을 좀 뒤졌다.1
2008년 2월 23일자 메일링에 이런게 있다.
log4cxx 0.10.0 RC2 is now available…
정말 감사합니다.
그리고 좋은 소식도 함께 올려주시니 더 좋군요 ^^