slam14讲学习笔记ch3

本文介绍了在Ubuntu上下载并安装CMake3.20版本的步骤,包括从官网下载、解压和配置。同时,针对遇到的‘CMake3.10或更高版本要求’的错误,提供了解决方案。此外,还详细解答了在安装pangolin0.4版本时可能出现的C++11支持问题,包括如何修改CMakeLists.txt以启用C++11标准,并给出了编译和安装的命令。
摘要由CSDN通过智能技术生成

ubantu下载3.20版本cmakeUbuntu安装CMake_喵先生!的博客-CSDN博客cmake所做的事其实就是告诉编译器如何去编译链接源代码。你也许想问不是有makefile吗,为什么还要它?这里就牵涉到跨平台问题。而且其语法也简单。卸载已经安装的旧版的CMake[非必需]apt-get autoremove cmake文件下载解压:wget https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz解压:tar zxvf cmake-3.12.2-Linux-x86_64.tar.gz查看https://blog.csdn.net/qq_37464479/article/details/110150429?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167939733416800184199128%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167939733416800184199128&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-110150429-null-null.142%5Ev74%5Econtrol_1,201%5Ev4%5Eadd_ask,239%5Ev2%5Einsert_chatgpt&utm_term=ubantu%E5%AE%89%E8%A3%85cmake&spm=1018.2226.3001.4187

遇到报错:CMake 3.10 or higher is required.  You are running version 3.5.1

解决:Ubuntu安装CMake_喵先生!的博客-CSDN博客

2. 下载的是pangolin  0.4版本,git上就有,其他版本可能报错。

3.当出现下面这种错误

   

 ,则在本项目下的CMakeLists上添加两行代码:

# 添加以下2句解决因C++11 support引起的编译报错
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)

解决方法参考来自下文:

Pangolin的使用_weixin_30627381的博客-CSDN博客

4.补充3:当报错如下:

/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

则考虑两点:

(1)在pangolin的安装包中的CMakeLists.txt中添加语句:

​​


# Check C++11 or C++0x support
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
   add_definitions(-DCOMPILEDWITHC11)
   message(STATUS "Using flag -std=c++11.")
elseif(COMPILER_SUPPORTS_CXX0X)
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
   add_definitions(-DCOMPILEDWITHC0X)
   message(STATUS "Using flag -std=c++0x.")
else()
   message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()

然后重新安装在电脑上

cd Pangolin
mkdir build
cd build
cmake ..
make
sudo make install //至关重要,安装到系统中

(2)如果还不行,考虑是项目不兼容?(多试无害),在项目代码中添加c++11的标准和依赖(依赖不确定是否需要,按需添加)

set(CMAKE_CXX_FLAGS "-std=c++11")
add_definitions(-std=c++11)

# 添加Eigen头文件
include_directories( "/usr/include/eigen3" )
# 添加Pangolin依赖
find_package( Pangolin )
# find_package( /usr/local/include/pangolin/)
include_directories( ${Pangolin_INCLUDE_DIRS} )

保存之。然后重中之重是不要直接在vscode中跑代码,要在终端中切入项目目录路径,然后

mkdir build && cd build
cmake ..
make
./编译出的项目的名字

参考如下:

5. cannot find trajectory file at ./examples/trajectory.txt解决办法

 参考来自SLAM十四讲 CH3 3.7 cannot find trajectory file at ./examples/trajectory.txt_trajectory.txt根本没有生成_升天热可乐的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值