( 本人在编译源码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