4

阿木币

0

精华

1 小时

在线时间

应届白菜

Rank: 1

发表于 2024-7-6 22:19:42 1014 浏览 7 回复

[飞控嵌入式] easydrone

把代码放在easyrobot_demo下的src下面(和给出的例程在一个地方),然后在配置文件cmakelist中添加了下面三张图片中划横线的语句,然后执行catkin_make clean命令,再执行catkin_make这个命令,发现在devel/lib/easyrobot_demo/中不生成可执行文件。请问这是什么原因?
我知道答案 回答被采纳将会获得 已有7人回答
image.png
微信图片_20240706221748.jpg
微信图片_20240706221732.jpg
微信图片_20240706221725.jpg
微信图片_20240706221712.jpg

扫一扫浏览分享
回复

使用道具 举报

144

阿木币

0

精华

143 小时

在线时间

技术大V

Rank: 4

发表于 2024-7-6 23:06:01
在ROS(Robot Operating System)中添加自己的代码并生成可执行文件通常包括以下步骤:

创建ROS工作空间:

使用catkin_make或catkin build(取决于你使用的ROS版本)来创建一个新的工作空间。
创建ROS包:

使用catkin_create_pkg命令来创建一个新的ROS包。
编写代码:

在你的ROS包内创建源代码文件,编写你的功能代码。
添加依赖:

确保你的CMakeLists.txt和package.xml文件包含了所有必要的依赖项。
编写CMakeLists.txt:

这个文件定义了如何编译你的代码。确保添加了add_executable和target_link_libraries指令来指定你的可执行文件和链接的库。
编译代码:

使用catkin_make或catkin build在工作空间的根目录下编译你的代码。
测试可执行文件:

编译完成后,使用rosrun命令来运行你的可执行文件并测试功能。
打包和分发:

如果你想要分发你的代码,可以创建一个devel-space或install-space,并使用catkin_make install命令来安装你的包。
下面是一个简化的示例,展示如何在CMakeLists.txt中添加一个可执行文件:

cmake_minimum_required(VERSION 2.8.3)
project(my_package)

find_package(catkin REQUIRED COMPONENTS
  std_msgs
  geometry_msgs
  # 其他依赖
)

add_message_files(
  FILES
  MyMessage.msg
  # 其他消息文件
)

generate_messages(
  DEPENDENCIES
  std_msgs
  geometry_msgs
  # 其他依赖的消息
)

catkin_package(
  # INCLUDE_DIRS include
  # LIBRARIES my_package
  # CATKIN_DEPENDS std_msgs geometry_msgs
  # DEPENDS system_lib
)

include_directories(
  ${catkin_INCLUDE_DIRS}
)

add_executable(my_node src/my_node.cpp)
add_dependencies(my_node ${catkin_EXPORTED_TARGETS})
target_link_libraries(my_node ${catkin_LIBRARIES})
确保替换示例中的my_package、my_node和src/my_node.cpp为你的包名、可执行文件名和源文件路径。

清理构建:

如果需要,使用catkin clean清理构建文件,然后重新编译。
使用ROS环境:

确保在运行可执行文件之前,你已经正确地设置了ROS环境,例如使用source devel/setup.bash。
请注意,这些步骤可能会根据你使用的ROS版本和具体需求有所不同。如果你使用的是ROS 2,步骤会有所不同,特别是在构建系统和命令方面。
回复 点赞

使用道具 举报

144

阿木币

0

精华

143 小时

在线时间

技术大V

Rank: 4

发表于 2024-7-6 23:06:36
检查一下你 package.xml修改了吗
回复 点赞

使用道具 举报

149

阿木币

1

精华

429 小时

在线时间

技术大V

Rank: 4

发表于 2024-7-7 10:47:00 来自手机
catkin_make之后有什么报错吗?
回复 点赞

使用道具 举报

4

阿木币

0

精华

1 小时

在线时间

应届白菜

Rank: 1

 楼主| 发表于 2024-7-7 15:54:17
风帆 发表于 2024-7-6 23:06
检查一下你 package.xml修改了吗

非常感谢您的回复我确实没有修改package.xml文件,我修改一下试试看
回复 点赞

使用道具 举报

4

阿木币

0

精华

1 小时

在线时间

应届白菜

Rank: 1

 楼主| 发表于 2024-7-9 14:03:55
eason 发表于 2024-7-7 10:47
catkin_make之后有什么报错吗?

没有报错,就是没编译自动过去了
回复 点赞

使用道具 举报

4

阿木币

0

精华

1 小时

在线时间

应届白菜

Rank: 1

 楼主| 发表于 2024-7-9 14:04:27
风帆 发表于 2024-7-6 23:06
检查一下你 package.xml修改了吗

我修改package.xml文件依然没有用这是怎么回事
回复 点赞

使用道具 举报

149

阿木币

1

精华

429 小时

在线时间

技术大V

Rank: 4

发表于 2024-7-18 09:30:52
编译自动过去说明你并没有编译到你刚修改的文件,或者你刚修改的文件也不是节点,没有放在cmakelists.txt。
回复 点赞

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表