微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行`catkin_make clean`时,外部项目的清理目标出现问题

如何解决运行`catkin_make clean`时,外部项目的清理目标出现问题

我的存储库中有很多软件包,我的某些软件包是通过以下方式安装的(我的自定义ROS软件包之一的CMakeLists.txt文件的片段):

include(ExternalProject)
ExternalProject_Add(<PACKAGE_NAME>
    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/<SOME_PATH>
    CONfigURE_COMMAND ""
    BUILD_IN_SOURCE 1
    BUILD_COMMAND $(MAKE)
    INSTALL_COMMAND $(MAKE) DESTDIR=${<PACKAGE>_DESTDIR} install
)

这在使用catkin_make进行编译时效果很好,但是如果我尝试使用catkin_make clean运行clean目标,则不会清理我使用external安装的项目。再次使用catkin_make进行编译时会导致问题。

有什么办法可以解决这个问题?我阅读了catkin_make的所有源代码,但确定干净的目标似乎完全由cmake完成。

解决方法

如果您希望将外部项目一次又一次地构建(并清理)为项目的一部分,请使用add_subdirectory而不是ExternalProject_Add包含它

如果您使用add_subdirectory将其包含在构建系统中,那么当您调用catkin_make clean时,它将被清除

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。