`

编译log4cpp 1.0

 
阅读更多
编译log4cpp 1.01、下载地址http://log4cpp.sourceforge.net
log4cpp只提供了VC6的项目文件,在msvc6目录下
2、用vs2005打开msvc6.dsw文件,打开时会有错误弹出,
分 析:因为log4cpp在生成NTEventLogAppender.dll时,需要连接NTEventLogCategories.mc文件。所以,项 目设置了自定义的生成步骤去生成NTEventLogAppender.dll。但从vc6的工程文件转换时,这些步骤却没有正确的转换过来。从而出现上 述问题。

解决方法:重新填写Custom Build Step项。

其中,CommandLine填写以下内容:
if not exist $(OutDir) md $(OutDir)
"mc.exe" -h $(OutDir) -r $(OutDir) $(ProjectDir)..\$(InputName).mc
"RC.exe" -r -fo $(OutDir)\$(InputName).res $(OutDir)\$(InputName).rc
"link.exe" /MACHINE:IX86 -dll -noentry -out:$(OutDir)\NTEventLogAppender.dll $(OutDir)\$(InputName).res

转换完项目后有多个工程只有留下log4cpp和log4cppDll,
或者删除两个项目中的NTEventLogCategories.mc 文件引用
3、要解决一个 mode_t 类型可能出现的重定义问题,需要打开以下文件
src\include\log4cpp\config-win32.h
查找 typedef int mode_t; 改为以下内容,(即加上 namespace log4cpp)

namespace log4cpp
{
  typedef int mode_t;
}
4、现在可以开始编译了,编译log4cpp时没有问题,但编译log4cppdll时出错,连接时找不到符号地址,解决方式就是将FactoryParams.cpp和Localtime.cpp加入工程即可。

5、目标工程包含库
log4cpp.lib ws2_32.lib(要选择库连接方式相同的库)


6、有人遇到问题,我没遇到:log4cppDLL项目编译时会报8个连接错误,提示符号std::_Tree找不到
解决方案:
将include\log4cpp\FactoryParams.hh文件中的
const_iterator find(const std::string& t) const;

修改为
const_iterator find(const std::string& t) const { return storage_.find(t); }
分享到:
评论

相关推荐

    log4cpp编译好的库+简单例子

    提供的两个版本`log4cpp-0.3.5rc3`和`log4cpp-1.0`可能在功能、性能和API上存在差异。例如,新版本可能修复了旧版本的bug,增加了新的特性,或者改进了内存管理和多线程支持。在使用时,应根据项目需求选择合适的...

    log4cpp安装使用大全

    **2.2 在VS2008中编译log4cpp** 1. **打开并配置项目** - 将下载的文件解压后,进入`D:\log4cpp-1.0\msvc6`目录。 - 使用Visual Studio 2008打开`msvc6.dsw`文件。 - 删除除`log4cpp`和`log4cppDLL`之外的所有...

    log4cpp-docs-1.0.tar.gz

    《log4cpp-docs-1.0:C++日志框架的官方使用指南》 log4cpp是一款在C++编程环境中广泛使用的日志记录库,它借鉴了Java平台上的log4j设计理念,为开发者提供了强大的日志管理和调试功能。本文档主要针对log4cpp的...

    GNUradio源码安装教程

    2. **解压并进入目录**:`tar -xvf log4cpp-1.1.1.tar.gz`,然后`cd log4cpp-1.1.1`。 3. **配置并安装**:在终端中依次输入`./configure`、`make`、`make install`。 4. **设置环境变量**: - 使用`gedit /etc/...

    drxgame.rar

    这是一个服务端/客户端模式的小型网络游戏,1.0版。可连接多玩家,最多连多少个玩家视各位电脑的配置而定啰。根据Andre LaMothe游戏大师的 DirectX RPG Game Programming...成功编译需要log4cpp-0.3.5rc3和directx8.0

    商业编程-源码-红茶贴吧hcbar v1.0.zip

    1. **源代码文件**:包括`.java`, `.py`, `.cpp`等不同语言的源代码文件,这些文件定义了程序的核心逻辑和功能。 2. **资源文件**:如图片、音频、配置文件等,它们是程序运行时所需的外部数据。 3. **构建脚本**:...

    Autocompiler_CPP

    自动编译是一个bash脚本,可以自动编译并运行c ++程序.cpp文件2021年4月8日v1.0 #名称:autocompile.sh #语法:自动编译[-f文件名]或[-f /目录/文件名] #Description:autocompile是一种功能,它可以自动编译c ++...

    Pangolin安装包下载

    .SetBounds(0.0, 1.0, pangolin::Attach::Pix(640), 1.0, -640.0f/480.0f) .SetHandler(new pangolin::Handler3D(s)); // 在窗口中显示图像 pangolin::Image<unsigned char> img(640, 480, 640*3, 3); while(!...

    C++网络爬虫项目

    ├── Log.cpp ├── Log.h ├── Main.cpp ├── Makefile ├── MultiIo.cpp ├── MultiIo.h ├── Plugin.h ├── PluginMngr.cpp ├── PluginMngr.h ├── Precompile.h ├── RecvThread.cpp ├─...

    syslog_win32.lib

    2.将syslog.h头文件和syslog.h头文件编译成静态库,已经编译好的静态库; 3.下载完syslog_win32.lib后包含到工程文件中,添加syslog.h头文件,即可使用; 4.新建syslog.host配置文件,包含服务器IP:514,默认端口号...

    linux下C语言编程基础

    其中,`gcc`用于编译C语言源代码(扩展名为`.c`),而`g++`则主要用于编译C++源代码(扩展名为`.cpp`)。在进行编译时,可以使用不同的选项来指定编译标准、输出文件名、链接额外的库等。 **常用编译选项**: - `-...

    基于 QML插件的编写分析

    ```cpp #include #include "myqmladvtimer.h" class MyQMLAdvTimerPlugin : public QQmlExtensionPlugin { Q_OBJECT Q_PLUGIN_METADATA(IID "com.example.MyQMLAdvTimerPlugin") public: void registerTypes...

    libtensorflow-gpu-windows-x86_64-2.3.0.zip

    4. **lib**:该目录下是库文件,包括动态链接库(DLL)和静态库(LIB),这些是实际运行和编译TensorFlow C++程序所需的库文件。例如,`libtensorflow_cc.dll`是C++接口的核心库,而`libtensorflow_framework.dll`则...

    androidgradle

    C/C++代码通常在`src/main/cpp`目录下,使用CMakeLists.txt来定义编译规则: ```cmake cmake_minimum_required(VERSION 3.4.1) add_library( hello-jni SHARED src/main/cpp/native-lib.cpp) find_library( ...

    gradle打包给unity使用

    确保在`Player Settings`的`Other Settings`中,`Scripting Backend`设置为`IL2CPP`,`Api Compatibility Level`设置为`.NET 4.x`。 三、编写Gradle构建脚本 1. **build.gradle文件**:在你的Android插件目录下...

    linuxgameserver

    C++标准库中的iostream和fstream可以用于基本的日志输出,而更复杂的日志系统可能需要第三方库如log4cpp或glog。 在文件`linuxgameserver-1.0`中,可能包含了游戏服务器的源码、配置文件、编译脚本等资源。通过阅读...

    Project_1_v.2.0

    在软件开发领域,版本号的升级代表着项目的迭代和发展,2.0通常意味着比1.0更加成熟和完善。 【描述】描述部分简洁地提到了"Project_1_v.2.0",这可能是为了强调这是项目系列中的第一个项目,而这个特定的版本是2.0...

    腾讯 研发工程师笔试真题

    因此,尝试将 `p3` 指向另一个变量是不允许的,这会导致编译错误。 - 因此,正确答案为 C。 **3. 以下代码输出什么:** ```cpp main() { int a[5] = {1, 2, 3, 4, 5}; int *p = (int*)(&a + 1); printf("%d", ...

Global site tag (gtag.js) - Google Analytics