Glog库使用时的一些错误

( 本人在编译源码StructSLAM时遇到的一些关于glog库的问题)
问题描述:
在这里插入图片描述
自己之前按照下面的方式成功安装过gfalgs和glog库,也在编译其他源码时使用过,今天在使用时遇到了上述错误。

download new version gflag and compile.

$ git clone https://github.com/gflags/gflags.git

$ mkdir build & cd build

$ cmake -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC ..

$ make & sudo make install

$ git clone https://github.com/google/glog.git

$ cd glog

$ mkdir build && cd build

maybe you need to install cmake3

$ sudo apt-get install cmake3

$ export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1

$ make

$ sudo make install

通过修改CmakeList.txt文件都不能解决问题(自己对里面的配置还不够熟练)。错误显示反正就是glog和gflags库的链接问题,最后重新卸载和安装解决问题。安装方式如下:
卸载glog:

sudo apt-get remove libgoogle-glog-dev

卸载gflags:

sudo apt-get purge libgflags-dev

安装gflags:

git clone https://github.com/gflags/gflags.git

cd gflags

mkdir build && cd build

cmake .. -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC ..

make -j4

sudo make install

安装glog:

安装编译工具: 	
sudo apt-get install autoconf automake libtool
尝试1:
cd glog

./autogen.sh

./configure CPPFLAGS="-I/usr/local/include -fPIC" LDFLAGS="-L/usr/local/lib"

make -j8

sudo make install

安装成功后编译StructSlam源码出现下面错误:

undefined reference to `pthread_rwlock_wrlock’

尝试2:
重新编译安装glog

cd glog

./autogen.sh

./configure CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

make -j8

sudo make install

最后安装glog后编译StructSlam成功
部分内容参考链接:https://blog.csdn.net/weicao1990/article/details/82896372

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux上使用glog静态的步骤如下所示: 1. 首先,将glog的静态文件libglog.a和头文件src/glog复制到您的工程目录中。这些文件可以从引用中提供的资源中获取。 2. 接下来,创建一个名为main.cpp的文件,并将以下代码添加到该文件中: ``` /******************************************************** main.cpp ********************************************************/ #include <stdio.h> #include "glog/logging.h" int main() { // 初始化参数 FLAGS_logtostderr = false; // TRUE:标准输出,FALSE:文件输出 FLAGS_alsologtostderr = true; // 除了日志文件之外是否需要标准输出 FLAGS_colorlogtostderr = false; // 标准输出带颜色 FLAGS_logbufsecs = 0; // 设置可以缓冲日志的最大秒数,0指实输出 FLAGS_max_log_size = 10; // 日志文件大小(单位:MB) FLAGS_stop_logging_if_full_disk = true; // 磁盘满是否记录到磁盘 google::InitGoogleLogging("mqttserver"); google::SetLogDestination(google::GLOG_INFO, "./test"); LOG(INFO) << "this is log"; LOG(WARNING) << "this is warning"; LOG(ERROR) << "this is error"; google::ShutdownGoogleLogging(); } ``` 3. 编译和链接您的代码。您可以使用以下命令编译您的代码: ``` g++ main.cpp -o main -lglog ``` 这将生成一个名为main的可执行文件。 4. 运行您的程序。您可以使用以下命令运行您的程序: ``` ./main ``` 这将执行您的代码,并在"./test"目录下生成日志文件。 请注意,如果在编译过程中遇到任何错误,请根据引用中提供的信息检查头文件的路径是否正确,并确保已正确安装gflags和glog,如引用所述。 希望这可以帮助您在Linux上使用glog静态。如果您还有其他问题,请随提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值