如何解决运行`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 举报,一经查实,本站将立刻删除。