视觉slam十四讲(第二版)ch13 编译cmakelist报错:

使用clion打开ch13文件夹编译的时候报错:

Could NOT find GTest (missing: GTEST_LIBRARY GTEST_MAIN_LIBRARY) Call Stack

是因为没有安装googletest,参照这篇博客安装时

https://blog.csdn.net/weixin_44401286/article/details/101796958

编译遇到了问题:

cmake ../googletest/
输出错误如下:
CMake Error at CMakeLists.txt:13 (if):
  if given arguments:

    "CMAKE_VERSION" "VERSION_GREATER_EQUAL" "3.1"

  Unknown arguments specified

-- Configuring incomplete, errors occurred!
See also "/home/alexander/Downloads/slambook2-master/3rdparty/googletest-master/build/CMakeFiles/CMakeOutput.log".

找到问题:

https://github.com/google/googletest/issues/2711

可能是cmake版本不够高导致的,尝试升级cmake:

https://blog.csdn.net/qq_32526087/article/details/88616116

安装新版本cmake的中途又出现了问题:

Curses libraries were not found. Curses GUI for CMake will not be built.

网上查询到是因为没有这个库导致的,所以安装:

sudo apt-get install libcurl4-openssl-dev

然后删除整个文件夹,重新解压压缩包,新建build编译cmake3.11.3

cmake ../googletest/
make

但是make又出了问题:

 static bool PortableLocaltime(time_t seconds, struct tm* out) {
             ^
cc1plus: all warnings being treated as errors
CMakeFiles/gtest.dir/build.make:62: recipe for target 'CMakeFiles/gtest.dir/src/gtest-all.cc.o' failed
make[2]: *** [CMakeFiles/gtest.dir/src/gtest-all.cc.o] Error 1
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/gtest.dir/all' failed
make[1]: *** [CMakeFiles/gtest.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

最后直接按照博客中提供的方法成功解决!

解决办法:

在安装包的googletest文件夹下(/home/bruce/software/googletest-master/googletest)找到CmakeLists.txt, 在其中添加如下语句:

SET(CMAKE_CXX_FLAGS "-std=c++0x")

再次make,便可以成功!最后不要忘记把他们加入自己的库文件夹中:

sudo cp libgtest*.a  /usr/lib 
sudo cp –a /home/bruce/software/googletest-master/googletest/include/gtestt /usr/include

其中libgtest文件在build文件夹下的lib文件夹中。

接下来编译ch13又发生了下一个错误:

 By not providing "FindGFlags.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "GFlags", but
  CMake did not find one.

  Could not find a package configuration file provided by "GFlags" with any
  of the following names:

    GFlagsConfig.cmake
    gflags-config.cmake

查看自己的文件,gflas包是有安装的,但最后还是选择重新源码安装了一次:

git clone https://github.com/gflags/gflags.git
cd gflags
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON -DGFLAGS_NAMESPACE=gflags ../ 
make -j4
sudo make install

接下来重新reload cmakelist显示成功!

你可能感兴趣的:(视觉slam十四讲(第二版)ch13 编译cmakelist报错:)