解压或放置log4cplus压缩包或文件; 进入log4cplus-1.2.1目录 编译: ./configure --prefix=/home/sjw/code/log4cplus/file/ --enable-static CXXFLAGS="-std=c++0x" make 其中 --prefix 指明了安装目录,–enable-static 指明了要生成静态库(可以不包含,这样就不会生成 .a 文件), CXXFLAGS="-std=c++0x" 指明了使用c++11(注意兼容性,如果编译库用了c++11,则引用该库时必须使用c++11)如果安装成功,则在 /home/sjw/code/log4cplus/file/lib 目录下有 liblog4cplus-1.2.so.5、liblog4cplus-1.2.so.5.1.6、liblog4cplus.la、liblog4cplus.so 文件(.so是动态链接库的静态库,.so.5是动态链接库,相当于windows下的.dll,liblog4cplus.a 是静态库,添加–enable-static 后会生成,默认只生成动态库),还有一个文件夹 pkgconfig 只包含了 一个log4cplus.pc 文件,该文件记录了安装目录、版本号等基本信息。在/home/sjw/code/log4cplus/file下有 include 文件,其中的 log4cplus 文件夹就包含了该库依赖的头文件。 我们这只使用liblog4cplus.a静态库文件,用于em_loger使用(此静态库名字与Windows上静态库的名字不同,编译时需要注意); usr/bin/ld: i386 architecture of input file XXX.a( xxx.o) is incompatible with i386:x86-64 output 这个问题是原来在32位Linux 系统下编译的o文件残留,在64位编译时候所提示的编译错误。make clean 可以解决。也可手动删除提示的o文件,之后重新编译。