log4cxx的下载包是0.10版本的,代码较旧,有些错误,应该从主干下载最新的代码.
0.10的下载包中有projects目录,内有VC6的工程文件; 还有site目录,内有vc构建的帮助文档vstudio.html.
VC构建步骤如下:
unzip apr-1.2.11-win32-src.zip
rename apr-1.2.11 apr
unzip apr-util-1.2.10-win32-src.zip
rename apr-util-1.2.10 apr-util
cd apache-log4cxx-0.10.0
configure.bat
configure-aprutil.bat
VC2010的Express版升级VC6的工程文件失败,可以自行创建log4cxx.sln.
apr的工程文件也是VC6的, 但有个Makefile.win可以用.
下载 log4cxx_trunk, apr-1.5, apr-util-1.5, apr-icon v_1.x, 解压,重命名, 放在同一个目录下,如
log4xx/trunk
log4cxx/apr
log4cxx/apr-util
log4xx/apr-iconv
log4cxx没有用到apr-iconv, 但apr-util的构建须同时构建apr-iconv.
运行configure.bat, configure-aprutil.bat. 其中是文件复制和配置更改, 可打开bat查看.
打开VC-Dos窗口,进入log4cxx/apr-util. 执行:
nmake -f Makefile.win
如果还需要Debug版本, 可再运行
nmake -f Makefile.win ARCH="Win32 Debug"
apr-util构建会同时构建apr. 生成的静态库位于 libD, libR.
VC新建一个Dll工程log4cxx, 添加文件log4cxx\trunk\src\main\cpp\*.cpp.
参考 log4cxx.dsp 设置一些参数:
# ADD BASE CPP /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "_USRDLL" /D "DLL_EXPORTS" /D "LOG4CXX" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "WIN32"
# ADD CPP /I "..\src\main\include" /I "..\..\apr\include" /I "..\..\apr-util\include" /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "_USRDLL" /D "DLL_EXPORTS" /D "LOG4CXX" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "WIN32"
# ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /DLL /SUBSYSTEM:CONSOLE /INCREMENTAL:NO
其中包括:
宏定义:"DLL_EXPORTS", "LOG4CXX", "APR_DECLARE_STATIC", "APU_DECLARE_STATIC"
apr的include, lib目录.
库: WS2_32.LIB MSWSOCK.LIB apr-1.lib aprutil-1.lib