码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【问题收集】slam中常见make问题错误 相关总结


    前言

    主要总结最近slam mapping编译 等cmake使用上遇到的错误和解决方案


    欢迎在评论区共同提出 我及时总结到这里面去 都是些坑

    0. opencv 相关

    cv2.error: /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/highgui/src/window.cpp:304: error: (-215)

    主要是老胡的opencv版本问题… emm 需要走3.4,但是默认是3.2,所以会冲突

    完整方案:https://chowdera.com/2022/134/202205140601479701.html

    https://blog.csdn.net/qinqinxiansheng/article/details/120219388

    最好的方案是:https://www.icode9.com/content-3-1356655.html

    随后发现可以走ExternalProject_Add 会更好,TODO添加

    1. gcc相关

    很多关于这个点的教程 动不动就rm -rf 其实把 有时候挺危险的,包括本人自己以前 也比较喜欢 rm -rf,但是还是慎用,有set 的方式就用set哈

    版本过低 no such file

    主要是编译vdbfusion example时遇到的问题

    fatal error: charconv: No such file or directory  #include 
    
    fatal error: filesystem: No such file or directory #include 
    
    • 1
    • 2
    • 3

    然后搜到了一位韩国老哥的正解:https://jtrimind.github.io/troubleshooting/filesystem/ 升级gcc,如下

    gcc --version # 检查版本
    sudo apt install gcc-8 g++-8 # 安装8.0版本
    
    # 设置系统默认值
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /usr/bin/g++ g++ /usr/bin/g++-7
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
    
    # 再次检查
    gcc --version
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    然后配置CFLAGS为17即可解决,在CMakeLists.txt中加入:

    set(CMAKE_CXX_STANDARD 17)
    set(CMAKE_CXX_FLAGS "--std=c++17 -lstdc++fs")
    
    • 1
    • 2

    fatal error: execution: No such file or directory

    同上理,但是有些可能会要求g+±9以上的 所以再次添加

    sudo apt install -y gcc-9 g++-9 -y
    # 设置系统默认值
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 900 --slave /usr/bin/g++ g++ /usr/bin/g++-9
    
    # 再次检查
    gcc --version
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    segmentation fault

    主要是使用上一个 filesystem 出现 segmentation fault,主要是把编译能过 一运行就不行

    定位到这个问题 就用了10分钟,主要是他不报错 就只是segmentation fault,和帅讨论后说是 :

    库版本有冲突也会这个效果, 而且感觉一般都是库依赖的比较低层的系统库的问题

    截图报错如下

    最后找到了解决方案是

    set(CMAKE_CXX_STANDARD 17)
    set(CMAKE_CXX_COMPILER "g++")
    set(CMAKE_CXX_FLAGS "--std=c++17 -lstdc++fs")
    
    • 1
    • 2
    • 3

    这样是不够的 需要把flag写到link libraries 我真的涨见识了,所以我最后写成了这样

    set(CMAKE_CXX_STANDARD 17)
    set(CMAKE_CXX_COMPILER "g++")
    set(CMAKE_CXX_FLAGS "--std=c++17 -lstdc++fs")
    add_library(datasets OBJECT)
    target_sources(datasets PRIVATE KITTIOdometry.cpp)
    target_compile_features(datasets PRIVATE cxx_std_17)
    target_link_libraries(datasets PUBLIC Eigen3::Eigen "-lstdc++fs")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    关于filesystem的一系列讨论:

    • https://bugs.launchpad.net/ubuntu/+source/gcc-8/+bug/1824721/comments/6
    • https://stackoverflow.com/questions/56615841/passing-stdfilesystempath-to-a-function-segfaults
    • https://stackoverflow.com/questions/69122701/segmentation-fault-with-stdfilesystem-path-object
    • 最后是这个链接里看到的:Why does this code results in an segmentation fault error? click
    • https://stackoverflow.com/questions/39231363/fatal-error-filesystem-no-such-file-or-directory

    赠人点赞 手有余香 😆;正向回馈 才能更好开放记录 hhh

  • 相关阅读:
    iOS-前半周【Zara】iOStableView And iOS无线轮播视图
    GIF动图怎么变成jpg动图?一键分解GIF动画
    【网络通讯开发系列】如何抓取终端设备的TLS报文(一)
    安装银河麒麟桌面系统V10【超详细图文教程】
    台湾省九齐NY8A051G 内置MOS版本6 I/O 8-bit EPROM-Based MCU
    10.25模拟赛总结
    git:二、git的本地配置+工作区域和文件状态+git add/commit/log +git reset回退版本
    CSRF和XSS有什么区别
    如何编写规范的交互文档
    Python- socket编程
  • 原文地址:https://blog.csdn.net/qq_39537898/article/details/125645474
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号