vs2008 编译 log4cpp 报错解决方案

1. log4cpp1.0仅提供了vc6的工程文件,使用vs2008(VS2005)打开工程并进行转换

2. 直接编译log4cppDLL, 提示Custom Build Step时出现错误:

因为log4cpp在生成NTEventLogAppender.dll时,需要连接NTEventLogCategories.mc文件。 所以,项目设置了自定义的生成步骤去生成NTEventLogAppender.dll。但从vc6的工程文件转换时,这些步骤却没有正确的转换过来。

3. 重新填写Custom Build Step项:(右键->工程属性->选择自定义生成步骤
if not exist $(OutDir) md $(OutDir)
"mc.exe" -h $(OutDir) -r $(OutDir) $(SolutionDir)NTEventLogCategories.mc
"RC.exe" -r -fo $(OutDir)\$(InputName).res $(ProjectDir)\$(InputName).rc
"link.exe" /MACHINE:IX86 -dll -noentry -out:$(OutDir)\NTEventLogAppender.dll $(OutDir)\$(InputName).res

4. 在(右键->工程属性->选择自定义生成步骤)Outputs填写:$(OutDir)\NTEventLogAppender.dll

5. 继续编译, 再次报错, 连接失败, 找不到符号

因为工程没有包含源文件: FactoryParams.cpp & Localtime.cpp

6. 手动添加上述两个文件到工程, 重新编译通过, 并生成log4cpp.dll


你可能感兴趣的:(Build)