首先,出错的原因是,glog在最后编译时,需要链接一个文件,这个文件是gflags中的,而gflags是我们在glog之前安装的,并且用了make install。问题就出在这里,gflags中的那个文件刚好是静态库,即.a,无法连接到glog中,解决方案:只需要重新安装gflags和glog,注意,安装的时候,要选择“仅创建动态库”:
一、编译安装gflags:
git clone https://github.com/gflags/gflags.git
cd gflags
mkdir build && cd build
cmake -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON ..
make -j4
sudo make install
二、编译安装glog:
git clone https://github.com/google/glog
cd glog
mkdir build && cd build
cmake -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON ..
make
sudo make install
做完上述步骤,你就会发现,可以顺利编译了!