linux log4cxx 静态库,log4cxx的个人实践
1.获取软件包
请从官方网站获得合适的版本,下载完成后解压缩到合适的目录中(目录中最好不要有空格,目录名最好是全英文的)。
2.获取软件包
在windows下可以用VC6.0以上的版本加载log4cxx的源码,项目文件在\log4cxx\msvc下log4cxx.dsw,然后选择F7(build all),一般情况下都能顺利编译通过。编译结束后会有以下几个文件:
1)log4cxx\msvc\lib下会有log4cxxs.lib和log4cxx.lib,其中log4cxxs.lib是用在静态库中的,log4cxx.lib是动态的引入库
2)log4cxx\msvc\bin\下会有log4cxx.dll,这是log4cxx做为静态库时的dll文件,必须要与可执行文件放在同一目录下。它跟log4cxx.lib是配合使用的。
3.项目环境设置
1)添加include目录,在“工具->选项->VC++目录->包含文件”,把log4cxx的include目录添加进去。成功后如下图所示:
2)根据源码编译属性时使用的字符集选择合适的字符集,我这里log4cxx编译库的时候使用的是“使用多字节字符集”,所以导入的时候,“项目->属性->常规->字符集”也是需要选择“使用多字节字符集”。
3)根据引入方式的不同而进行不同的设置
静态库的引入方式:
1.添加引入库的依赖项:“项目->属性->链接器->输入->附加依赖项”,填入log4cxxs.lib和WS2_32.Lib,并把log4cxxs.lib放到该项目的根目录下。
2.添加预编译器定义,“项目->属性->配置属性->C/C++->预处理器->预处理器定义”,填入LOG4CXX_STATIC。如下图所示
3.修改运行库的调试方法,“项目->属性->C/C++->代码生成->运行时库”,选择多线程调试(/MTd),成功后如下图所示:
动态库的引入方式:
1.添加引入库的依赖项:“项目->属性->链接器->输入->附加依赖项”,填入log4cxx.lib,并把log4cxx.lib放到该项目的根目录下。
2.添加log4cxx\msvc\bin\下的log4cxx.dll文件拷贝到执行文件的相应目录下。
4.编写代码
这试我顺便写的一个测试代码,可以通过的
#include
#include
#include
#include
#include
#include
#include
#include
usingnamespace log4cxx;
usingnamespace log4cxx::xml;
usingnamespace log4cxx::helpers;
intmain()
{
int
result = EXIT_SUCCESS;
try
{
BasicConfigurator::configure();
//PropertyConfigurator::configure("log4j.properties");
//DOMConfigurator::configure(
_T( "log4j.xml" ) );
LoggerPtr rootLogger =
Logger::getRootLogger();
//LoggerPtr
rootLogger = Logger::getLogger(_T("comm"));
rootLogger->info(_T("它的确工作了"));
rootLogger->warn(_T("错误啦!!"));
/*
NDC::push(_T("trivial
context"));
rootLogger->debug(_T("debug
message"));
rootLogger->info(_T("info
message"));
rootLogger->warn(_T("warn
message"));
rootLogger->error(_T("error
message"));
rootLogger->fatal(_T("fatal
message"));
*/
}
catch(Exception&)
{
result = EXIT_FAILURE;
}
return
result;
}
注意事项:
1)使用xml作为配置文件的时候一定要把log4j.dtd和xml配置文件一起放。
linux log4cxx 静态库,log4cxx的个人实践相关推荐
- Linux 之三 静态库及动态库的编写和使用
最近在整理旧电脑时,发现了一些刚入行时的学习记录,以及最早使用新浪博客 http://blog.sina.com.cn/zcshou 写的一些文章.最近要重拾 Linux,所以把这些 Word 文 ...
- Linux上静态库和动态库的编译和使用
linux上静态库和动态库的编译和使用(附外部符号错误浅谈) 这就是静态库和动态库的显著区别,静态库是编译期间由链接器通过include目录找到并链接到到可执行文件中,而动态库则是运行期间动态调用,只 ...
- 【Linux】静态库与动态库的生成及调用
一,库:一种可执行代码的二进制形式,可以被载入内存执行.其中库分为静态库.动态库 二,静态库和动态库的区别 1)Linux 下静态库:名字一般为 lib***.a利用静态函数库编译成 ...
- Linux中静态库和动态库(共享库)的区别
1. 静态库和动态库的制作过程区别 1.1 静态库的制作过程 详见博客:Linux中静态库的制作与使用 1.2 动态库的制作过程 详见博客:Linux中动态库(共享库)的制作与使用 2. 静态库和动态 ...
- 【Linux】Linux下静态库(.a)和动态库(.so)的制作和使用
如有错误,欢迎大家指正,感谢! 目录 一.程序工作过程简单介绍 1. 安装GCC 2. 源程序工作流程 3. 使用示例 4. gcc常用的编译参数选项 二.静态库的制作及使用 1. 库是 ...
- [学习备忘录]Linux平台静态库、动态库的一些笔记
先声明几点: 1.操作系统:linux(fc9).编译器:gcc-4.3.0.编辑器:包括但不限于emacs.vim.这些无理由也不应造成限制. 2.生成的可执行文件名称比较有规律,仅仅是为了演示的方 ...
- linux 交叉编译 静态库,从Linux为Windows开发交叉编译静态库
我想在Linux中为Windows编译静态库.以下是我跟着编译从Linux为Windows开发交叉编译静态库 使用i586-mingw32msvc-cc -c static_lib.c -o stat ...
- linux 动态库建立,浅析linux下静态库和动态库的建立和使用
在粤嵌学了很多知识,我们把常用的公用函数放在一起做成一个函数库,可以供其他程序共同使用,函数库本质上说,是一个可执行代码的二进制形式,可被操作系统载入内存执行.linux下的库分为两种:静态库,后缀名 ...
- linux系统中 库分为静态库和,Linux系统静态库与共享库
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? This article mainly introduces the statics library and share ...
- Linux下静态库和动态库的编译连接
http://blog.sina.com.cn/s/blog_4090ba590100t3nu.html .a文件 gcc -c test.c ar rc libtest.a test.o ran ...
最新文章
- 国行版HomePod售价2799元,本周五发售
- JAVA 中BIO,NIO,AIO的理解
- apche 虚拟主机设置
- Java项目实训报告
- 各种页面刷新代码大全,asp/javascript刷新页面代码
- 购房占比47.54%,数据揭秘女性偏爱婚前买房背后原因
- python求最大素数_Python实现求最大公约数及判断素数的方法
- 中国联通官网被发现含木马脚本,可向用户推广色情APP
- java 13种技术_JavaEE的13种核心技术
- 选出一个从零到五十之间的数,要求能被3整除且一位上的数为5
- VMware15下安装Ubuntu18.04
- 无法启动此程序 因为计算机中丢失msvcr71.dll,msvcp71.dll丢失怎样修复_电脑提示计算机丢失msvcr71.dll如何解决...
- 假期读好书——力荐《八位大学校长》
- Flutter 环境配置
- 苏宁、长虹、格力,为何“玩不好”旧家电?
- Picasso加载圆形图片和圆角图片
- VS2010中,无法嵌入互操作类型“……”,请改用适用的接口的解决方法
- apache atlas 案例_元数据治理 Apache Atlas
- 电脑风扇声音大怎么办?具体原因以及解决措施,快速解决
- kotlin android 4,Kotlin Android Extensions: 与 findViewById 说再见 (KAD 04)
热门文章
- 高红梅:第四章 第二节 猎捕与欧美文化的身份认同
- mysql怎么设置不要密码_mysql无密码怎么设置密码
- vlog短视频_适用于Vlog或视频网络的20+ WordPress主题
- 修复windows系统引导
- DTL常用过滤器详解
- (转发)RJ45水晶头网线的做法
- Linux基础-制作本地yum仓库(离线安装软件)
- 教你5分钟制作出一个Unity图像追踪的AR Demo(使用EasyAR插件4.1版本,个人版,免费)
- k8s之四层负载均衡Service:概念、原理解读
- org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned f