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解决办法