您的位置:首页 > 财经 > 产业 > 做网站开发需要培训吗_服务公司荡神改名_上海百度公司地址_seo技术培训泰州

做网站开发需要培训吗_服务公司荡神改名_上海百度公司地址_seo技术培训泰州

2025/4/27 19:59:39 来源:https://blog.csdn.net/weixin_51612528/article/details/147472835  浏览:    关键词:做网站开发需要培训吗_服务公司荡神改名_上海百度公司地址_seo技术培训泰州
做网站开发需要培训吗_服务公司荡神改名_上海百度公司地址_seo技术培训泰州

文章目录

  • 一、ROS Noetic && Ubuntu 20.04
  • 二、ROS Melodic && Ubuntu 18.04
  • 三、报错及解决
    • 问题一:未指定安装路径
    • 解决方法:在 CMakeLists.txt 中添加如下指令
    • 问题二:Qt 版本低于 5.10,QLocale::formattedDataSize()是 Qt 5.10+ 引入的新函数,版本低会会导致编译失败。
    • 解决方法:修改 ufomap_ros/ufomap_rviz_plugins/src/ufomap_display.cpp 源码
    • 问题三:缺少 tf2_sensor_msgs 包
    • 解决方法:安装 ros-melodic-tf2-sensor-msgs
  • 小结

一、ROS Noetic && Ubuntu 20.04

官方大部分开发和测试是在 Ubuntu 20.04 和 ROS Noetic 上完成的,可以参考官方的安装教程执行,后续如果在同平台测试会更新相关的内容。

参考如下内容:Github地址 && 设置

二、ROS Melodic && Ubuntu 18.04

参考如下评论:内容一 && 内容二

  1. 系统默认的c++编译器的版本7较旧,推荐安装GNU C++10 编译器

    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt-get update
    sudo apt install gcc-10 g++-10
    
  2. 设置默认编译器版本

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100
    
  3. 通过如下指令选择使用哪个版本

    sudo update-alternatives --config gcc
    sudo update-alternatives --config g++
    
  4. 根据系统提示选择具体版本,输入对应序号

    版本选择

  5. 验证设置是否成功

    gcc --version
    

    验证结果

  6. 安装 TBB 2018+

    echo "deb http://cz.archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a  /etc/apt/sources.list
    # or
    echo "deb http://cz.archive.ubuntu.com/ubuntu eoan main universe" | sudo tee -a  /etc/apt/sources.list
    sudo apt update
    sudo apt install libtbb-dev
    
  7. 注意:直接使用sudo apt install libtbb-dev会安装2017版本,并不适用于我们的代码,安装完最新版本的tbb之后,建议编辑/etc/apt/sources.list并删除或注释掉上面添加的软件仓库,然后执行sudo apt upgrade,否则可能会报错。

  8. 验证 TBB 版本,大于2018版本即可

    dpkg -s libtbb-dev | grep Version
    

    版本验证

  9. 安装 Catkin Tools

    sudo apt install python3-catkin-tools python3-osrf-pycommon
    
  10. 创建并初始化工作空间

    mkdir -p ~/catkin_ws/src  # 创建工作空间
    cd ~/catkin_ws
    catkin init  # 初始化工作空间
    catkin config --extend /opt/ros/melodic  # 换成自己的ros版本
    catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release # To enable release mode compiler optimzations
    
  11. 克隆UFOMap

    cd ~/catkin_ws/src
    git clone https://github.com/UnknownFreeOccupied/ufomap.git
    
  12. 编译并 source

    rosdep install --from-paths . --ignore-src -r -y
    # Build your workspace
    catkin build
    # Source your workspace
    source ../devel/setup.bash
    

三、报错及解决

问题一:未指定安装路径

Errors     << ufomap:cmake /home/user/voxelMap/logs/ufomap/build.cmake.000.log                                                                                    
CMake Error at /home/user/voxelMap/src/ufomap/ufomap/CMakeLists.txt:150 (install):install TARGETS given no LIBRARY DESTINATION for shared library target"Map".

解决方法:在 CMakeLists.txt 中添加如下指令

set(CMAKE_INSTALL_LIBDIR ${PROJECT_SOURCE_DIR}/lib)

问题二:Qt 版本低于 5.10,QLocale::formattedDataSize()是 Qt 5.10+ 引入的新函数,版本低会会导致编译失败。

/home/user/voxelMap/src/ufomap/ufomap_ros/ufomap_rviz_plugins/src/ufomap_display.cpp: In member function ‘void ufomap_ros::rviz_plugins::UFOMapDisplay::updateInfo(double, size_t, size_t, size_t)’:
/home/user/voxelMap/src/ufomap/ufomap_ros/ufomap_rviz_plugins/src/ufomap_display.cpp:586:35: error: ‘class QLocale’ has no member named ‘formattedDataSize’586 |  size_property_->setString(locale.formattedDataSize(size));
  • 查看当前 Qt 版本

    qmake -v
    
  • 如果有,显示版本信息

    QMake version 3.1
    Using Qt version 5.9.5 in /usr/lib/x86_64-linux-gnu
    
  • 如果没有则有如下显示,但也可能是命令找不到

    qmake: could not find a Qt installation of ''
    
  • 安装 Qt 5 的开发工具之后再查询

    sudo apt update
    sudo apt install qt5-qmake qtbase5-dev
    qmake -v
    
  • 如果还有相同的提示,可能是 Qt 安装路径没有加入系统 PATH,手动查找

    find / -name qmake 2>/dev/null
    
  • 有类似于如下的输出内容

    /usr/bin/qmake
    /usr/lib/x86_64-linux-gnu/qt5/bin/qmake
    /usr/lib/qt5/bin/qmake
    
  • 临时查询

    /usr/lib/x86_64-linux-gnu/qt5/bin/qmake -v
    
  • 将环境变量加入.bashrc中长期可用

    export PATH=/usr/lib/x86_64-linux-gnu/qt5/bin:$PATH
    
  • ubuntu18的默认 Qt 版本是5.9,一般不推荐直接修改这个版本,这里推荐直接修改源文件代码

解决方法:修改 ufomap_ros/ufomap_rviz_plugins/src/ufomap_display.cpp 源码

#include <QString> 头文件# 手动实现
QString formatDataSize(qint64 bytes) 
{const QStringList units = {"B", "KB", "MB", "GB", "TB"};double size = static_cast<double>(bytes);int unitIndex = 0;while (size >= 1024.0 && unitIndex < units.size() - 1) {size /= 1024.0;++unitIndex;}return QString::number(size, 'f', 2) + " " + units[unitIndex];
}# 替换
// size_property_->setString(locale.formattedDataSize(size));
size_property_->setString(formatDataSize(size));

解决方法

问题三:缺少 tf2_sensor_msgs 包

CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):Could not find a package configuration file provided by "tf2_sensor_msgs"with any of the following names:tf2_sensor_msgsConfig.cmaketf2_sensor_msgs-config.cmake
  • 查询 ros 包 tf2_sensor_msgs
    rospack find tf2_sensor_msgs
    
  • 如果报错(rospack: error: package 'tf2_sensor_msgs' not found),说明包未安装

解决方法:安装 ros-melodic-tf2-sensor-msgs

sudo apt-get install ros-melodic-tf2-sensor-msgs

小结

上述内容均来自官方提供的安装教程及相关社区评论,同时包括自己编译的时候遇到的几个错误,如有其他问题欢迎在评论区交流,谢谢!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com