你好 我catkin_make时报错 但我在darknet内make进行编译了 在catkin_make的时候为什么还让我用cmake 编译darknet
4条回答 默认 最新
- Kwan的解忧杂货铺@新空间代码工作室 2024-04-14 14:36关注
下午好🌅🌅🌅
本答案参考ChatGPT-3.5问题描述: 在ROS下编译ab版darknet时,使用catkin_make编译时报错,但是事先在darknet内进行了make进行编译,为什么还需要使用cmake编译darknet?
解决方案:
-
首先需要了解ROS的编译方式。ROS使用catkin作为编译系统,catkin是一个buildtool,它通常使用cmake进行编译。
-
在编译ROS package中的第三方library时,需要使用cmake将其编译成ROS可用的library,然后在catkin_make中进行整体编译。
-
在ROS中使用第三方库时,需要将其包含在ROS的workspace中。因此,在编译darknet时,需要将其安装在ROS的workspace中(一般为catkin_ws/src)。
-
由于darknet是一个单独的library,它需要使用cmake对其进行编译成一个library,然后在编译ROS package时使用。
-
在使用catkin_make编译ROS package时,它会找到CMakeLists.txt文件进行编译,因此在编译ROS package时,需要重新对darknet进行cmake编译,以在ROS中使用。
-
如果你在darknet目录下进行make编译,darknet会被编译成二进制文件,而不是ROS所需的library文件。因此,在使用darknet作为依赖项时,需要在darknet目录中使用cmake编译,以将其编译成ROS所需的library文件。
-
在ls -alF /opt/ros/melodic/lib/命令后,您应该可以看到导入的动态库。在catkin_make之前,编译工具会检查这个目录,以确保正确的环境。
代码:
为了在ROS中编译使用darknet,应按照以下步骤:
-
将darknet安装到ROS的workspace中(一般为catkin_ws/src)。
-
在darknet目录下使用cmake编译:
cd darknet mkdir build cd build cmake .. make sudo make install
- 在ROS package中添加对darknet的依赖项,并在CMakeLists.txt中设置:
find_package(darknet REQUIRED) include_directories(${darknet_INCLUDE_DIRS}) ... target_link_libraries(${PROJECT_NAME} ${darknet_LIBRARIES})
- 在catkin_ws中使用catkin_make进行编译。
解决 无用评论 打赏 举报 编辑记录 -
悬赏问题
- ¥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