成功将log4cpp升级到了vs2005版本,总结下编译时报错及相应的解决方法

目前可供下载的log4cpp源代码只提供了支持使用vc6编译方式,在将此版本的程序升级到2005的过程中会产生一些错误,下面将这些错误的解决方式中介如下。

 

    1、在使用vs2005打开log4cpp工程时,会有类似于“需要将工程转化到2005 solution”的警告窗口弹出,点击yes后,在接下来打开solution的过程中会有某些project无法加载的错误窗口弹出,直接点击OK。 因为这些无法加载的project都是测试程序,对生成log4cpp的库文件没有影响,在solution打开后可以直接将这些project 从solutions中删除。

 

    2、在编译生成库文件的时候会有类似于custom build error的错误产生,这是因为NTEventLogCategories.mc的编译规则中使用的工具默认是在vc98目录下,而这个目录是不存在的, 解决方式就是,直接将mc.exe,rc.exe,link.exe前面的路径前缀去掉,这样就使程序自动使用vs2005版的相应的工具。

 

    3、链接产生动态库文件时会有大量的如下的错误信息,这些是因为连接时找不到符号地址,解决方式就是将FactoryParams.cpp和Localtime.cpp加入工程即可。

1>PatternLayout.obj : error LNK2001: unresolved external symbol "public: class std::_Tree<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >,0> >::const_iterator __thiscall log4cpp::FactoryParams::find(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (?find@FactoryParams@log4cpp@@QBE?AVconst_iterator@?$_Tree@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@@2@$0A@@std@@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@@Z)
1>PatternLayout.obj : error LNK2019: unresolved external symbol "void __cdecl log4cpp::localtime(__int64 const *,struct tm *)" (?localtime@log4cpp@@YAXPB_JPAUtm@@@Z) referenced in function "public: virtual void __thiscall log4cpp::TimeStampComponent::append(class std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char> > &,struct log4cpp::LoggingEvent const &)" (?append@TimeStampComponent@log4cpp@@UAEXAAV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABULoggingEvent@2@@Z)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值