qq_52053252 2024-04-14 14:36 采纳率: 0%
浏览 5

ab版darknet 在ros下编译出现的问题 ros-melodic

你好 我catkin_make时报错 但我在darknet内make进行编译了 在catkin_make的时候为什么还让我用cmake 编译darknet

  • 写回答

4条回答 默认 最新

  • 关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    问题描述: 在ROS下编译ab版darknet时,使用catkin_make编译时报错,但是事先在darknet内进行了make进行编译,为什么还需要使用cmake编译darknet?

    解决方案:

    1. 首先需要了解ROS的编译方式。ROS使用catkin作为编译系统,catkin是一个buildtool,它通常使用cmake进行编译。

    2. 在编译ROS package中的第三方library时,需要使用cmake将其编译成ROS可用的library,然后在catkin_make中进行整体编译。

    3. 在ROS中使用第三方库时,需要将其包含在ROS的workspace中。因此,在编译darknet时,需要将其安装在ROS的workspace中(一般为catkin_ws/src)。

    4. 由于darknet是一个单独的library,它需要使用cmake对其进行编译成一个library,然后在编译ROS package时使用。

    5. 在使用catkin_make编译ROS package时,它会找到CMakeLists.txt文件进行编译,因此在编译ROS package时,需要重新对darknet进行cmake编译,以在ROS中使用。

    6. 如果你在darknet目录下进行make编译,darknet会被编译成二进制文件,而不是ROS所需的library文件。因此,在使用darknet作为依赖项时,需要在darknet目录中使用cmake编译,以将其编译成ROS所需的library文件。

    7. 在ls -alF /opt/ros/melodic/lib/命令后,您应该可以看到导入的动态库。在catkin_make之前,编译工具会检查这个目录,以确保正确的环境。

    代码:

    为了在ROS中编译使用darknet,应按照以下步骤:

    1. 将darknet安装到ROS的workspace中(一般为catkin_ws/src)。

    2. 在darknet目录下使用cmake编译:

    cd darknet
    mkdir build
    cd build
    cmake ..
    make
    sudo make install
    
    1. 在ROS package中添加对darknet的依赖项,并在CMakeLists.txt中设置:
    find_package(darknet REQUIRED)
    include_directories(${darknet_INCLUDE_DIRS})
    ...
    target_link_libraries(${PROJECT_NAME} ${darknet_LIBRARIES})
    
    1. 在catkin_ws中使用catkin_make进行编译。
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月14日

悬赏问题

  • ¥20 ESP32使用MicroPyhon开发,怎么获取485温湿度的值,温湿度计使用的鞋子是Modbus RTU
  • ¥50 苹果MGIE项目部署缺少emb权重
  • ¥15 采用ansys进行机翼在特定路径下的打孔过程中的受力分析
  • ¥15 单片机adb主机连接手机,usb调试密钥无法保存
  • ¥15 已知X和Y有以下关系,求X和Y的关系式
  • ¥15 net core 同时编辑怎么防止数据多保存了
  • ¥15 matlab做ba模型让其在ba和er规则下生长
  • ¥15 请问Quartus的Verilog代码怎么写?
  • ¥100 Mac 版foxmail 收邮件问题
  • ¥15 QWebEngineView