You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ROS catkin编译报错Missing variable is CMAKE_py_LINK_EXECUTABLE如何解决

错误原因

add_executable、target_link_libraries、set_target_properties均为CMake针对C/C++等编译型语言的配置指令,Python是解释型语言不需要编译链接,你强制给Python节点指定链接语言为py,而CMake本身没有内置Python语言的链接器配置,因此会抛出CMAKE_py_LINK_EXECUTABLE缺失的报错。你后续修改时将变量名直接作为语言参数传入,CMake会自动拼接生成CMAKE_<参数值>_LINK_EXECUTABLE格式的查找变量,因此会出现CMAKE_CMAKE_py_LINK_EXECUTABLE_LINK_EXECUTABLE缺失的二次报错。

修复步骤

完全删除你之前添加的三行错误CMake配置,按照ROS Python节点的标准规则配置即可:

  • 给src/motion_controller.py头部添加shebang声明,指定解释器:
    #!/usr/bin/env python3
    # ROS1 Kinetic/Melodic等Python2环境替换为 #!/usr/bin/env python2
    
  • 给Python节点文件添加可执行权限:
    chmod +x /home/cdegner/create_ws/src/motion_controller/src/motion_controller.py
    
  • 在CMakeLists.txt中添加Python节点的安装配置:
    catkin_install_python(PROGRAMS
      src/motion_controller.py
      DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
    )
    
  • 确认package.xml中已经添加Python依赖:
    <!-- ROS1 Noetic及以上版本 -->
    <build_depend>python3_catkin</build_depend>
    <exec_depend>python3_catkin</exec_depend>
    
    <!-- ROS1 Melodic及以下版本 -->
    <!-- <build_depend>python_catkin</build_depend> -->
    <!-- <exec_depend>python_catkin</exec_depend> -->
    

配置完成后删除工作区的build和devel目录,重新执行catkin_make或者catkin build即可正常编译。

内容的提问来源于stack exchange,提问作者cdegner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:36:05