注意:我的环境是 vc7.1。
从 http://log4cpp.sourceforge.net/ 下载 log4cpp-0.3.5rc3.tar.gz
- 解压 log4cpp-0.3.5rc3.tar.gz 到 c:
c:/log4cpp-0.3.5rc3
- 用 vc7.1 打开以下工程文件,并按提示转换所有项目到新版本。(有提示转换失败的,跳过即可)
c:/log4cpp-0.3.5rc3/msvc6/msvc6.dsw
- 转换完成后,在解决方案中,只保留 log4pp 和 log4cppDLL 两个项目,其它的可以移除。
log4cpp log4cppDLL
c:/log4cpp-0.3.5rc3/msvc6/msvc6.sln
- 在 IDE 中点开这两个工程的文件列表,删掉以下文件的引用,否则会出现找不到文件的问题。
NTEventLogCategories.mc
- 要解决一个 mode_t 类型可能出现的重定义问题,需要打开以下文件
c:/log4cpp-0.3.5rc3/include/log4cpp/config-win32.h
查找 typedef int mode_t; 改为以下内容,(即加上 namespace log4cpp)
namespace log4cpp { typedef int mode_t; }
- 现在可以开始编译了,编译好 release 版和 debug 版。编译后产生的文件是
c:/log4cpp-0.3.5rc3/msvc6/log4cpp/Debug/log4cppD.lib c:/log4cpp-0.3.5rc3/msvc6/log4cppDLL/Debug/log4cppD.lib c:/log4cpp-0.3.5rc3/msvc6/log4cppDLL/Debug/log4cppD.dll
release版
c:/log4cpp-0.3.5rc3/msvc6/log4cpp/Release/log4cpp.lib c:/log4cpp-0.3.5rc3/msvc6/log4cppDLL/Release/log4cpp.lib c:/log4cpp-0.3.5rc3/msvc6/log4cppDLL/Release/log4cpp.dll
- 我们的项目中只需要用到 log4cppDLL 的版本,所以把以下 4 个文件
c:/log4cpp-0.3.5rc3/msvc6/log4cppDLL/Debug/log4cppD.lib c:/log4cpp-0.3.5rc3/msvc6/log4cppDLL/Debug/log4cppD.dll c:/log4cpp-0.3.5rc3/msvc6/log4cppDLL/Release/log4cpp.lib c:/log4cpp-0.3.5rc3/msvc6/log4cppDLL/Release/log4cpp.dll
c:/log4cpp-0.3.5rc3/lib
- 最后在VC的 projects 设置相应的 包含文件 和 库文件 目录,分别为
c:/log4cpp-0.3.5rc3/include c:/log4cpp-0.3.5rc3/lib