【问题标题】:Cleaning CMake installed files清理 CMake 安装的文件
【发布时间】:2013-11-24 02:53:15
【问题描述】:

我使用 CMake 的“安装”关键字将一些可执行文件/库放置到系统路径中。是否有内置机制来执行“distclean”之类的操作,其中所有已安装的文件都会被删除?

无休止的 Google 搜索反复出现对话,如果问题提到“cmake”和“cleanup”,则回复总是提到“rm -fr”,而没有仔细阅读。

【问题讨论】:

    标签: cmake


    【解决方案1】:

    执行“make install”后应该有“install_manifest.txt”文件。 以下命令应该可以工作:

    cat install_manifest.txt | sudo xargs rm
    

    【讨论】:

    • 这确实会删除所有文件,但某些目录可能会保持不变。
    • 实际上,我们不应该删除任何不是由相应安装创建的目录,例如/usr/local/bin,如果它恰好是那里安装的唯一东西。可能 install_manifest.txt 还不够……
    • 您可以通过 (cat install_manifest.txt; echo) | sudo sh -c 'while read i ; do rm "$i" ; rmdir --ignore-fail-on-non-empty -p "${i%/*}" ; done' 改进这个想法。只要目录为空,它就会处理所有目录。
    • sudo make uninstall 通常以askubuntu.com/questions/944544/… 工作
    • 请注意,由于crlf/lf 的痛苦,此代码无法在 Windows 上运行。
    【解决方案2】:

    您可以要求软件作者在 CMake 中添加“卸载”目标,请参阅 https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#can-i-do-make-uninstall-with-cmake

    这样你就可以调用 make uninstall。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-11
      • 1970-01-01
      相关资源
      最近更新 更多