首页 > 其他分享 >编译Sophus报错: error: implicitly-declared 的参考解决方法

编译Sophus报错: error: implicitly-declared 的参考解决方法

时间:2023-08-23 23:00:09浏览次数:126  
标签:declared SET CMAKE CXX deprecated implicitly FLAGS Sophus 报错

一、问题描述

自己在编译Sophus时遇到如下错误:

/home/wong/Datum/third_party/Sophus-1.0.0-template/Sophus-1.0.0/test/core/test_so2.cpp:82:31: error: implicitly-declared ‘Eigen::Map<const Sophus::SO2<double> >::Map(const Eigen::Map<const Sophus::SO2<double> >&)’ is deprecated [-Werror=deprecated-copy]
   82 |     Eigen::Map<SO2Type const> const_shallow_copy = map_of_const_so2;

 

二、解决方法

在 CMakeLists.txt 中添加如下语句:

set(CMAKE_CXX_FLAGS "-Wno-error=deprecated-declarations -Wno-deprecated-declarations ")

这里是我添加之后的CMakeLists.txt:

SET(PROJECT_NAME Sophus)

PROJECT(${PROJECT_NAME})
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

SET( CMAKE_VERBOSE_MAKEFILE ON)

################################################################################
# Release by default
# Turn on Debug with "-DCMAKE_BUILD_TYPE=Debug"
IF( NOT CMAKE_BUILD_TYPE )
   SET( CMAKE_BUILD_TYPE Release )
ENDIF()

set(CMAKE_CXX_STANDARD 14)
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
   SET(CMAKE_CXX_FLAGS_DEBUG  "-O0 -g")
   SET(CMAKE_CXX_FLAGS_RELEASE "-O3")
   SET(CMAKE_CXX_FLAGS "-Wall -Werror -Wextra -Wno-deprecated-register -std=c++14 -stdlib=libc++ -Wno-deprecated-register")
ELSEIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
   SET(CMAKE_CXX_FLAGS_DEBUG  "-O0 -g")
   SET(CMAKE_CXX_FLAGS_RELEASE "-O3")
   SET(CMAKE_CXX_FLAGS "-Wall -Werror -Wextra -std=c++14 -Wno-deprecated-declarations -ftemplate-backtrace-limit=0")
   SET(CMAKE_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_DEBUG} --coverage -fno-inline -fno-inline-small-functions -fno-default-inline")
   SET(CMAKE_EXE_LINKER_FLAGS_COVERAGE "${CMAKE_EXE_LINKER_FLAGS_DEBUG} --coverage")
   SET(CMAKE_SHARED_LINKER_FLAGS_COVERAGE "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} --coverage")
ELSEIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
   ADD_DEFINITIONS("-D _USE_MATH_DEFINES /wd4305 /wd4244")
ENDIF()

################################################################################
set(CMAKE_CXX_FLAGS "-Wno-error=deprecated-declarations -Wno-deprecated-declarations ")

# 下方省略n行

然后再次编译就可以了!


参考链接:
[1] strasdat. Can’t build #214 [EB/OL]. https://github.com/strasdat/Sophus/issues/214, 2019-07-17/2022-12-06.
[2] cmake 出现大量的警告 deprecated-declarations [EB/OL]. https://www.cnblogs.com/ramlife/p/13740968.html, 2020-09-27/2022-12-06.
[3] Sophus安装踩坑 [EB/OL]. https://blog.csdn.net/weixin_41698305/article/details/116547361, 2021-05-08/2022-12-06.

标签:declared,SET,CMAKE,CXX,deprecated,implicitly,FLAGS,Sophus,报错
From: https://www.cnblogs.com/rainbow70626/p/17652989.html

相关文章

  • mybatis 报错:Cause: java.lang.NumberFormatException: For input string: "java"
    1、所错图示:2、为什么包这样的错误?在if查询条件的逻辑没有错,其实在代码转换解析时,自动转换类型了,是代码在转换解析时异常。<!--where与if配合使用--><selectid="selectBlogIfWhere"resultType="blog"parameterType="blog"><includerefid="commBlog"></in......
  • FastJson不成想还有个版本2啊:序列化大字符串报错
    背景发现陷入了一个怪圈,写文章的话,感觉只有大bug或比较值得写的内容才会写,每次一写就是几千字,争取写得透彻一些,但这样,我也挺费时间,读者也未必有这么多时间看。我想着,日常遇到的小bug、平时工作中的一些小的心得体会,都还是可以写写,这样也才是最贴近咱们作为一线开发生活的,也不必......
  • SQL注入之报错注入
    报错注入是什么?在注入点的判断过程中,发现数据库中SQL语句的报错信息,会显示在页面中,因此可以利用报错信息进行注入。报错注入的原理,就是在错误信息中执行SQL语句。触发报错的方式有很多,具体细节也不尽相同。此处建议直接背公式,将公式带换掉1=1的部分。报错注入就是在判断SQL注......
  • vue eslint 报错 error “Component name “*****“ should always be multi-word”,该
    出现的问题: 在 vue-cli 创建的项目中,创建文件并命名后,会报  “Componentname"*****"shouldalwaysbemulti-word”  报错;报错截图示例如下:Componentname"******"shouldalwaysbemulti-word.eslintvue/multi-word-component-names报错的原因: 在组件命......
  • unity在使用了HybridCLR进行编译时报错
    unity在使用了HybridCLR执行HybridCLR/Generate/All时,一直不成功,提示pleasefirstuse"HybridCLR/Generate/All"后面还有fatalerror:'icalls/mscorlib/System/MonoType.h'filenotfound#include"icalls/mscorlib/System/MonoType.h"每次执行HybridCLR/Gener......
  • 安装vue3+vite报错
    报错:‘D:\Program‘不是内部或外部命令,也不是可运行的程序;我已经配置过环境变量,发现是node安装目录D:\ProgramFiles\nodejs,中间有空格导致,只能改变nodejs位置1.把nodejs整个剪切出来放在d盘根目录下面2.修改node的全局环境npmconfigsetcache"D:\nodejs\node_cache......
  • 【错误记录】编译 Linux 内核报错信息及解决办法
    【错误记录】编译Linux内核报错报错信息:/bin/sh:1:bison:notfound 解决方案:sudoapt-getinstallbison***********************************************************************************************************报错信息:fatalerror:openssl/bio.h:Nosuchf......
  • 在集成H.265视频流媒体播放器EasyPlayer.js时遇到"SourceBuffer"报错,应该如何解决?
    EasyPlayer,是由TSINGSEE青犀视频推出的一款功能强大且开放性很高的H.265视频流媒体播放器。它支持H.264和H.265视频格式的播放,并具有稳定性强、流畅播放等特点。此外,EasyPlayer还有多个版本可供选择,例如EasyPlayer-RTSP、EasyPlayer-Pro、EasyPlayer.js等。有用户反馈,在使用播放器......
  • pytest读取config.ini报错
    报错现象:    解决方法:找到phthon安装路径下的iniconfig/_init.py文件,添加代码encoding=‘utf-8-sig’,如图所示 ......
  • Ubuntu 20.04编译opencv-3.1.0时报错 error: 'CODEC_FLAG_GLOBAL_HEADER' was not dec
    Ubuntu20.04源码编译安装opencv320报错error:'CODEC_FLAG_GLOBAL_HEADER'wasnotdeclaredinthisscope的解决办法:修改/opt/opencv/opencv-3.2.0/modules/videoio/src/cap_ffmpeg_impl.hpp,顶端添加如下代码:#defineAV_CODEC_FLAG_GLOBAL_HEADER(1<<22)#defineCODEC_F......