log4cplus在Qt linux中的应用与问题解决
- 背景
- log4cplus下载
- 遇到问题:libm.so.6:undefined reference to `__strtof128_nan@GLIBC_PRIVATE‘
- 解决方案
- 编译生成
- 在Qt工程里面添加对应依赖
- 编译运行成功
背景
最近工作中需要用到log4cplus的日志做一些记录,用了大家现成的动态库链接一直有问题,一直提示找不到一定,密密麻麻好几百的错误,看了头大,于是乎自己准备搞下log4cplus的编译。
log4cplus下载
教程很懂,网上搜一下就有资源,在ubuntu中解压,分别执行:
./configure
make
make install
有可能出现make install创建目录失败,改为下面命令即可:
sudo make install
遇到问题:libm.so.6:undefined reference to `__strtof128_nan@GLIBC_PRIVATE‘
不出意外的话就会遇到各种各样的问题,果然还是被我遇见了:libm.so.6:undefined reference to `__strtof128_nan@GLIBC_PRIVATE’
解决方案
根据网上搜索查询到的信息,就是因为libm.so.6与libc.so.6对应的版本不配套,可以在对应的目录下ll进行查看,看看版本是否匹配。
在我本地中,两者都是用相同的版本,所以根因在于我当前的libm.so.6不配套,需要更新一个配套的。
更换完毕后问题解决。(见附件资源)
PS:与同事请教了下,如果是采用交叉编译,这个libm.so.6还需要再改;
编译生成
生成完的动态库so是放在隐藏目录下,如果没有指定目录,默认是放在当前目录.lib/下,可以同ls -a进行查看。接下来就是把它链进你对应的项目里就好啦~
在Qt工程里面添加对应依赖
在Qt的pro文件里面添加响应的依赖与头文件、lib文件引用,参考:
INCLUDEPATH += $$PWD/lib/xxxxDEPENDPATH += $$PWD/lib/xxxxunix:!macx: LIBS += -L$$PWD/lib/xxxxx -llog4cplus -llog4cplusU
实例如下:
编译运行成功
问题解决~