log4cplus已经更新到1.2 RC5。
下载下来,进行编译发现两个问题。经过修改后才能成功编译。
编译过程:
1.下载源码log4cplus-1.2.0-RC5.zip文件,最新版。找不到可以到谷歌,或者必应上查找就有下载的地址了。
2.解压源码
3.进入到控制台,进入到msvc10目录下执行 ..\scripts\msvc10_to_msvc11.cmd log4cplus.sln
4.此时在msvc10同级目录下增加了msvc11的目录,进入此目录打开log4cplus.sln即可。
5.编译,出现多个错误。但是主要是由于
LOG4CPLUS_HAVE_CXX11_SUPPORT,定义的问题。
由于visual studio 2012还不支持 = delete ;语法因此需要将这个宏定义注释掉。
然后重新编译,出现找不到标识符 FreeAddrInfoA的错误信息。在internal\socket.h文件中
由于支持FreeAddrInfoA函数的最低操作系统为windows 2003,因此
_WIN32_WINNT 必须大于等于 0x0502
但是项目中的值是0x0501。查看方法
项目->项目属性页->c/C++->预处理器->预处理器定义点击就能看到。但是不能修改,只能查看项目文件查找修改的方法。
关闭项目开发环境,发现msvc11目录下比普通的项目多了个log4cplus.props文件,打开已开果然是他。
定位到PreprocessorDefinitions,_WIN32_WINNT=0x0501;WINVER=0x0501修改为_WIN32_WINNT=0x0502;WINVER=0x0502即可。
重新打开项目成功编译。
本文详细介绍了如何解决在使用log4cplus 1.2RC5版本进行编译时遇到的问题。主要涉及到对宏定义LOG4CPLUS_HAVE_CXX11_SUPPORT的调整,以及修改_WIN32_WINNT和(WINVER)的值来兼容不同操作系统版本。通过调整这些设置,最终成功解决了编译错误并顺利编译项目。
1332

被折叠的 条评论
为什么被折叠?



