在 MinGW 环境下编译 log4cpp
2014年8月6日从 http://sourceforge.net/projects/log4cpp 下载源码,当前的最新版本的 1.1.1。
解压到某个文件夹,假定该文件夹为 D:\workspace\log4cpp
。
执行 msys.bat,进入 MSYS,从MSYS 中进入 log4cpp 源文件所在目录:
user@host ~
$ cd /d/workspace/logcpp
user@host /d/workspace/log4cpp
$
执行 ./configure,开始配置:
user@host /d/workspace/log4cpp
$ ./configure
配置检查无误,会生成 Makefile 文件,开始编译:
user@host /d/workspace/log4cpp
$ make
结果编译失败,出现错误:
...
../include/log4cpp/config-MinGW32.h:20:17: error: 'long long long' is too long for GCC
#define int64_t __int64
^
../include/log4cpp/config-MinGW32.h:20:17: error: 'long long long' is too long for GCC
#define int64_t __int64
^
../include/log4cpp/config-MinGW32.h:20:17: error: declaration does not declare anything [-fpermissive]
make[1]: *** [Appender.lo] Error 1
...
使用万能的 Google,找到了错误解决办法,文章在这里, 简单来说就是注释掉 log4cpp 源码中 config-MinGW32.h 的第20行:“#define int64_t __int64”。
按前述重新执行 make 命令,虽然有一些警告,但终于编译通过了,执行 make install 将编译好的库和头文件拷贝到 MinGW 环境
(注意,确切来说,这个位置是 MSYS 环境的 /local
,在使用 log4cpp 时要注意一点):
user@host /d/workspace/log4cpp
$ make install
修改历史
1.0.0,bigtree,2014年8月6日
created
1.0.0,bigtree,2014年8月6日
release
1.0.0,bigtree,2015年5月26日
迁移到 Jekyll,符合 GFM 的语法