使用vs2005(vc8)編譯log4cpp-0.3.5rc3
問題:由于log4cpp-0.3.5rc3僅提供了vc6的工程文件,因此,使用vs2005打開后,需要進行轉換。但是轉換后,不能正確編譯,提示Custom Build Step時出現了錯誤。
分析:因為log4cpp在生成NTEventLogAppender.dll時,需要連接NTEventLogCategories.mc文件。所以,項目設置了自定義的生成步驟去生成NTEventLogAppender.dll。但從vc6的工程文件轉換時,這些步驟卻沒有正確的轉換過來。從而出現上述問題。
解決方法:重新填寫Custom Build Step項。
其中,CommandLine填寫以下內容:
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
Outputs填寫:$(OutDir)\NTEventLogAppender.dll
適用范圍:log4cpp項目、log4cppDLL項目的Debug和Release配置。同時,該方法適用于vs2003(vc7.1)。