Visual Studio 2013编译log4cplus

开篇提示:本文为本人原创,本文欢迎转载,但必须注明本文出处,例如。
“该文引用自 CruiseYoung的:Visual Studio 2013编译log4cplus
http://blog.csdn.net/fksec/article/details/38418809”
否则说明阁下愿意支付以100元人民币每字计的稿费,敬请留意。

1 前期准备

1.1 C++11特性支持
Visual C++ Compiler November 2013 CTP (for  Visual Studio 2013)
下载页面:http://www.microsoft.com/en-us/download/details.aspx?id=41151
直接地址:http://download.microsoft.com/download/3/C/2/3C271B79-6354-4B66-9014-C6CEBC14C5C4/vc_CompilerCTP.Nov2013.exe
注1:
Visual C++ Compiler November 2012 CTP (for  Visual Studio 2012)
下载页面:http://www.microsoft.com/en-us/download/details.aspx?id=35515
直接地址:http://download.microsoft.com/download/5/1/6/5169AA1E-D7A4-4DC2-A9AE-0A9DFD2601AB/vc_compilerCTPNov2012.exe
1.2 官方信息
官网地址:http://sourceforge.net/p/log4cplus/wiki/Home/
API地址(只针对稳定版):http://log4cplus.sourceforge.net/docs/html/index.html
代码托管地址:https://github.com/log4cplus/log4cplus

2 编译

2.1 如果想用最新的版本,例如当前最新版本号为“log4cplus 1.2.0-RC2”,且不想用c++11特性,请在下载页面点击“branch:master”-->“Branches”-->“1.2.x”,。编译过程如下:
2.1.1 “开始”菜单-->“所有程序”-->“附件”-->“命令提示符”;
2.1.2 切换到目录log4cplus-1.2.x\msvc10;
cd /d E:\Projects\compile\log4cplus-1.2.x\msvc10
2.1.3 执行以下命令;
..\scripts\msvc10_to_msvc12.cmd log4cplus.sln
2.1.4 从新生成的文件夹“log4cplus-1.2.x\msvc12”中打开解决方案“log4cplus.sln”;
2.1.5 温馨提示:如果没有安装“QT4”或“QT5”,请卸载相应工程“Qt4DebugAppender”或“Qt5DebugAppender”;
2.1.6 编译;
注: 步骤2.1.1至2.1.4来源于“log4cplus-1.2.x\README.md”的提示。
2.2 如果想用最新的版本,且想用c++11特性,请下载“Branches”值为“master”的代码。编译过程如下:
2.2.1 安装Visual C++ Compiler November 2013 CTP (for  Visual Studio 2013)
2.2.2 ( 经本人上报库开发者,该bug已修复,请跳过)打开“log4cplus\src\socket.cxx”文件,因为“std::array<std::ptrdiff_t, 2> interruptHandles”在ServerSocket的复制构造函数处初始化方式在VS IDE环境下不识别,作如下修改:将
, interruptHandles { -1, -1 }
改为
,
#ifdef _MSC_VER
    interruptHandles{ { -1, -1 } }
#else
    interruptHandles{ -1, -1 }
#endif
2.2.3 ( 经本人上报库开发者,该bug已修复,请跳过)打开解决方案“log4cplus\msvc12\log4cplus.sln”,点击“解决方案资源管理器”-->“log4cplus”工程-->“helpers”-->“logloguser.h”和“logloguser.cxx”-->右键“从项目中排除(J)”;用同样的方法,将“log4cplusS”工程中的“logloguser.h”和“logloguser.cxx”,右键“从项目中排除(J)”,否则会产生如下错误:
“error C1083: Cannot open source file: '..\src\logloguser.cxx': No such file or directory”;
2.2.4 解决关键字不可识别“constexpr”问题:在完成2.2.1的前提下,将以下项目:
log4cplus
log4cplusS
configandwatch_test
configandwatch_testS
filter_test
filter_testS
performance_test
performance_testS
propertyconfig_test
propertyconfig_testS
作如下更改:
“属性”-->“配置(C)” 选择“所有配置”-->“平台(P)”选择“所有平台”-->“配置属性”-->“常规”-->“常规”-->“平台工具集”选择“Visual C++ Compiler Nov 2013 CTP(CTP_Nov2013)”;
由于log4cplus的编译,默认为msvc14(Visual Studio 2015),所以需讲所有工程的“平台工具集”改为“Visual C++ Compiler Nov 2013 CTP(CTP_Nov2013)”;或者安装Microsoft Visual Studio 2015。
2.2.5 温馨提示:如果没有安装“QT4”或“QT5”,请卸载相应工程“Qt4DebugAppender”或“Qt5DebugAppender”;
2.2.6 编译;
2.3 库文件提取(本人没有提取Unicode版本的库):
mkdir D:\comm\log4cplus
mkdir D:\comm\log4cplus\include

mkdir D:\comm\log4cplus\x64
mkdir D:\comm\log4cplus\x64\lib
mkdir D:\comm\log4cplus\x64\lib\debug
mkdir D:\comm\log4cplus\x64\bin
mkdir D:\comm\log4cplus\x64\bin\debug

mkdir D:\comm\log4cplus\x64_static
mkdir D:\comm\log4cplus\x64_static\lib
mkdir D:\comm\log4cplus\x64_static\lib\debug

mkdir D:\comm\log4cplus\Win32
mkdir D:\comm\log4cplus\Win32\lib
mkdir D:\comm\log4cplus\Win32\lib\debug
mkdir D:\comm\log4cplus\Win32\bin
mkdir D:\comm\log4cplus\Win32\bin\debug

mkdir D:\comm\log4cplus\Win32_static
mkdir D:\comm\log4cplus\Win32_static\lib
mkdir D:\comm\log4cplus\Win32_static\lib\debug

xcopy /E /H /R .\include\* D:\comm\log4cplus\include 

copy /Y msvc12\x64\bin.Release\log4cplus.dll D:\comm\log4cplus\x64\bin
copy /Y msvc12\x64\bin.Release\log4cplus-CLFSAppender.dll D:\comm\log4cplus\x64\bin
copy /Y msvc12\x64\bin.Release\log4cplus-MSTTSAppender.dll D:\comm\log4cplus\x64\bin

copy /Y msvc12\x64\bin.Release\log4cplus.lib D:\comm\log4cplus\x64\lib
copy /Y msvc12\x64\bin.Release\log4cplus.pdb D:\comm\log4cplus\x64\lib  
copy /Y msvc12\x64\bin.Release\log4cplus-CLFSAppender.lib D:\comm\log4cplus\x64\lib
copy /Y msvc12\x64\bin.Release\log4cplus-clfsappender.pdb D:\comm\log4cplus\x64\lib
copy /Y msvc12\x64\bin.Release\log4cplus-MSTTSAppender.lib D:\comm\log4cplus\x64\lib
copy /Y msvc12\x64\bin.Release\log4cplus-msttsappender.pdb D:\comm\log4cplus\x64\lib

copy /Y msvc12\x64\bin.Release\log4cplusS.lib D:\comm\log4cplus\x64_static\lib
copy /Y msvc12\x64\bin.Release\log4cpluss.c.pdb D:\comm\log4cplus\x64_static\lib  

copy /Y msvc12\x64\bin.Debug\log4cplusD.dll D:\comm\log4cplus\x64\bin\debug
copy /Y msvc12\x64\bin.Debug\log4cplus-CLFSAppender.dll D:\comm\log4cplus\x64\bin\debug
copy /Y msvc12\x64\bin.Debug\log4cplus-MSTTSAppender.dll D:\comm\log4cplus\x64\bin\debug

copy /Y msvc12\x64\bin.Debug\log4cplusD.lib D:\comm\log4cplus\x64\lib\debug
copy /Y msvc12\x64\bin.Debug\log4cplusD.pdb D:\comm\log4cplus\x64\lib\debug
copy /Y msvc12\x64\bin.Debug\log4cplus-CLFSAppender.lib D:\comm\log4cplus\x64\lib\debug
copy /Y msvc12\x64\bin.Debug\log4cplus-clfsappender.pdb D:\comm\log4cplus\x64\lib\debug
copy /Y msvc12\x64\bin.Debug\log4cplus-MSTTSAppender.lib D:\comm\log4cplus\x64\lib\debug
copy /Y msvc12\x64\bin.Debug\log4cplus-msttsappender.pdb D:\comm\log4cplus\x64\lib\debug

copy /Y msvc12\x64\bin.Debug\log4cplusSD.lib D:\comm\log4cplus\x64_static\lib\debug
copy /Y msvc12\x64\bin.Debug\log4cplussd.c.pdb D:\comm\log4cplus\x64_static\lib\debug  


copy /Y msvc12\Win32\bin.Release\log4cplus.dll D:\comm\log4cplus\Win32\bin
copy /Y msvc12\Win32\bin.Release\log4cplus-CLFSAppender.dll D:\comm\log4cplus\Win32\bin
copy /Y msvc12\Win32\bin.Release\log4cplus-MSTTSAppender.dll D:\comm\log4cplus\Win32\bin

copy /Y msvc12\Win32\bin.Release\log4cplus.lib D:\comm\log4cplus\Win32\lib
copy /Y msvc12\Win32\bin.Release\log4cplus.pdb D:\comm\log4cplus\Win32\lib  
copy /Y msvc12\Win32\bin.Release\log4cplus-CLFSAppender.lib D:\comm\log4cplus\Win32\lib
copy /Y msvc12\Win32\bin.Release\log4cplus-clfsappender.pdb D:\comm\log4cplus\Win32\lib
copy /Y msvc12\Win32\bin.Release\log4cplus-MSTTSAppender.lib D:\comm\log4cplus\Win32\lib
copy /Y msvc12\Win32\bin.Release\log4cplus-msttsappender.pdb D:\comm\log4cplus\Win32\lib

copy /Y msvc12\Win32\bin.Release\log4cplusS.lib D:\comm\log4cplus\Win32_static\lib
copy /Y msvc12\Win32\bin.Release\log4cpluss.c.pdb D:\comm\log4cplus\Win32_static\lib 

copy /Y msvc12\Win32\bin.Debug\log4cplusD.dll D:\comm\log4cplus\Win32\bin\debug
copy /Y msvc12\Win32\bin.Debug\log4cplus-CLFSAppender.dll D:\comm\log4cplus\Win32\bin\debug
copy /Y msvc12\Win32\bin.Debug\log4cplus-MSTTSAppender.dll D:\comm\log4cplus\Win32\bin\debug

copy /Y msvc12\Win32\bin.Debug\log4cplusD.lib D:\comm\log4cplus\Win32\lib\debug
copy /Y msvc12\Win32\bin.Debug\log4cplusD.pdb D:\comm\log4cplus\Win32\lib\debug
copy /Y msvc12\Win32\bin.Debug\log4cplus-CLFSAppender.lib D:\comm\log4cplus\Win32\lib\debug
copy /Y msvc12\Win32\bin.Debug\log4cplus-clfsappender.pdb D:\comm\log4cplus\Win32\lib\debug
copy /Y msvc12\Win32\bin.Debug\log4cplus-MSTTSAppender.lib D:\comm\log4cplus\Win32\lib\debug
copy /Y msvc12\Win32\bin.Debug\log4cplus-msttsappender.pdb D:\comm\log4cplus\Win32\lib\debug

copy /Y msvc12\Win32\bin.Debug\log4cplusSD.lib D:\comm\log4cplus\Win32_static\lib\debug
copy /Y msvc12\Win32\bin.Debug\log4cplussd.c.pdb D:\comm\log4cplus\Win32_static\lib\debug

3 用配置方式使用log4cplus所相关的重要文件

log4cplus\include\log4cplus\layout.h中头注释描述
log4cplus\include\log4cplus\configurator.h中头注释描述
log4cplus\src\patternlayout.cxx整个文件,特别是函数:void PatternParser::finalizeConverter(tchar c)
log4cplus\src\fileappender.cxx中函数static tstring preprocessDateTimePattern(const tstring& pattern, DailyRollingFileSchedule& schedule)
log4cplus\src\factory.cxx中函数void initializeFactoryRegistry()
C++头文件ctime中的strftime()函数
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值