gici-lib编译方法

1,问题说明

环境:Ubuntu 20.04

问题:由于之前已经成功编译了武汉大学的OB_GINS,编译GICI-OPEN时出现如下问题:

/usr/bin/ld: libgici.so: undefined reference to `google::kLogSiteUninitialized'
/usr/bin/ld: libgici.so: undefined reference to `google::InitVLOG3__(int**, int*, char const*, int)'

 经过查询,主要是由于新版的glog库删除了kLogSiteUninitialized相关函数,采用如下解决方案也不能解决问题:

git clone https://github.com/google/glog.git
cd glog/
git checkout v0.5.0-rc2
mkdir build && cd build
cmake ..
sudo make -j12 install

2,安装步骤

这个问题搞了好久,主要是gflags和glog版本的问题,各种不兼容错误。尝试到最后,按照如下步骤编译成功:

2.1 下载gflags源码并编译

git clone https://github.com/gflags/gflags.git
cd gflags
mkdir build && cd build
cmake  -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON ..
make -j4
sudo make install

2.2下载glog源码并编译

手动下载了glog-0.4.0(更高级的版本我看了下没有kLogSiteUninitialized函数。然后按照如下方法进行编译:

mkdir build && cd build
cmake  -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON ..
make
sudo make install

2.3 安装GICI及错误

编译的时候可能还会存在其他库链接失败的问题,如:

CMake Error at /usr/lib/x86_64-linux-gnu/cmake/gflags/gflags-nonamespace-targets.cmake:115 (message):
  The imported target "gflags_static" references the file

     "/usr/lib/x86_64-linux-gnu/libgflags.a"

 解决方法是通过locate定位对应的库,并直接建立链接:

ln -s /usr/local/lib/libgflags.a /usr/lib/x86_64-linux-gnu/libgflags.a

上述过程可能会涉及到glog和gflags库的重新卸载安装,我是通过sudo make install看编译完的库安装到了哪个目录,然后通过删除对应文件的方式来进行卸载。卸载完后重新编译安装。

上述过程编译成功的话,采用VS code可以很容易的成功运行。

你可能感兴趣的:(多源融合学习,GNSS,RTK,OB_GINS,组合导航,北斗,RTKLIB,gici-open)