编译过程
sudo su
./configure --prefix=/where/to/install
make
make install
#/where/to/install 位置
编译报错
github链接:
https://github.com/log4cplus/log4cplus
make[2]: Entering directory '/root/cpp/log4cplus-master'
/bin/bash ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I./include -I./threadpool -I./include -I./catch/single_include -DCATCH_CONFIG_PREFIX_ALL=1 -DNDEBUG -DINSIDE_LOG4CPLUS -D_GNU_SOURCE=1 -D_REENTRANT -std=c++0x -Wall -fdiagnostics-show-caret -ftrack-macro-expansion -fdiagnostics-color=auto -Wextra -pedantic -Wstrict-aliasing -Wstrict-overflow -Woverloaded-virtual -Wold-style-cast -Wundef -Wshadow -Wformat -Wnoexcept -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wno-variadic-macros -O2 -fvisibility=hidden -pthread -MT src/liblog4cplus_la-global-init.lo -MD -MP -MF src/.deps/liblog4cplus_la-global-init.Tpo -c -o src/liblog4cplus_la-global-init.lo `test -f 'src/global-init.cxx' || echo './'`src/global-init.cxx
libtool: compile: g++ -DHAVE_CONFIG_H -I./include -I./threadpool -I./include -I./catch/single_include -DCATCH_CONFIG_PREFIX_ALL=1 -DNDEBUG -DINSIDE_LOG4CPLUS -D_GNU_SOURCE=1 -D_REENTRANT -std=c++0x -Wall -fdiagnostics-show-caret -ftrack-macro-expansion -fdiagnostics-color=auto -Wextra -pedantic -Wstrict-aliasing -Wstrict-overflow -Woverloaded-virtual -Wold-style-cast -Wundef -Wshadow -Wformat -Wnoexcept -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wno-variadic-macros -O2 -fvisibility=hidden -pthread -MT src/liblog4cplus_la-global-init.lo -MD -MP -MF src/.deps/liblog4cplus_la-global-init.Tpo -c src/global-init.cxx -fPIC -DPIC -o src/.libs/liblog4cplus_la-global-init.o
src/global-init.cxx:35:24: fatal error: ThreadPool.h: No such file or directory
#include "ThreadPool.h"
^
compilation terminated.
Makefile:2552: recipe for target 'src/liblog4cplus_la-global-init.lo' failed
make[2]: *** [src/liblog4cplus_la-global-init.lo] Error 1
make[2]: Leaving directory '/root/cpp/log4cplus-master'
Makefile:3619: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/root/cpp/log4cplus-master'
Makefile:1432: recipe for target 'all' failed
make: *** [all] Error 2
解决办法
报错原因直接下载了.zip没有使用git 下载初始化子模块。
git submodule update --init --recursive
参考:https://github.com/log4cplus/log4cplus/issues/169
避免上述问题的办法直接去官网下载完整的包编译:
log4cplus
注意版本和当前使用的c++版本对应。
gcc --version