在虚拟机中安装log4cplus库,编译测试程序的时候总是报“undefined reference to `log4cplus::Logger::Logger(log4cplus::Logger&&)'”错误,经过两天的摸索,终于找到了解决方法:是因为执行“./configure”的时候未加参数导致的,情景如下:
我写的测试程序用的C++11的一些功能,所以用g++编译的时候需要加选项“-std=c++0x”。第一次安装log4cplus库:
./configure
make
make install
./configure没有加任何参数,安装完成以后,编译测试程序的时候出现了上述错误;遂去网上查找原因,说./configure需要添加参数CXXFLAGS="-std=c++0x";执行make uninstall将log4cplus库卸载后,进行第二次安装:
./configure CXXFLAGS="-std=c++0x"
make
make install
安装完成以后,编译测试程序仍然报错......
之后,经过反复尝试终于找到原因:执行make uninstall卸载第一次安装的库后,没有执行make clean,导致环境被污染,从而使得第二次安装(./configure加参数CXXFLAGS="-std=c++0x")也不成功。
总结,正确安装方法:
将log4cplus包解压后,直接运行
./configure CXXFLAGS="-std=c++0x"
make
make install
就可以安装成功
如果先用不带参数的方法
./configure
make
make install
进行了安装,则 卸载后必须执行make clean,否则无效