【问题标题】:Problem with the clean target of an external project when running `catkin_make clean`运行`catkin_make clean`时外部项目的干净目标问题
【发布时间】:2020-09-02 22:46:52
【问题描述】:

我的存储库中有很多包,我的一些包是通过以下方式安装的(我的一个自定义 ROS 包的 CMakeLists.txt 文件的 sn-p):

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 运行干净的目标,我使用外部安装的项目不会被清除。这会导致在使用catkin_make 再次编译时出现问题。

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

【问题讨论】:

    标签: cmake ros catkin


    【解决方案1】:

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

    如果您使用 add_subdirectory 将其作为构建系统的一部分包含在内,那么当您调用 catkin_make clean 时,它将被清除

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 2012-11-10
      • 1970-01-01
      • 2015-02-13
      相关资源
      最近更新 更多