移动目录后编辑与删除CMakeCache.txt

Dre*_*kes 15 cmake

如果在移动源目录后重新执行CMake,则会出现如下错误:

CMake错误:当前CMakeCache.txt目录/new-path/CMakeCache.txt与创建CMakeCache.txt的目录/ old-path不同.这可能导致在错误的位置创建二进制文件.如果您不确定,请重新编辑CMakeCache.txt

处理这个问题的最佳方法是什么?似乎删除缓存工作.为什么我要编辑CMakeCache.txt,而不是只删除它?

Fra*_*ser 18

我认为你最好的选择是删除缓存并重新创建它.事实上,如果我需要移动源代码,我倾向于进一步删除整个构建树,但这可能有点过分.

如果您确定自己在做什么,可以通过CMake GUI或手动编辑CMakeCache.txt文件,但我发现与从头开始重新运行cmake相比,通常不值得付出努力.我想如果运行CMake需要花费大量时间(例如,如果您使用ExternalProject_Add可能涉及下载和构建第三方资源),则最好修改CMakeCache.txt.

本文提供了有关CMakeCache.txt文件和编辑它的更多详细信息.特别是它说:

编辑缓存的主要原因是为CMake提供JPEG等本机库的位置,或者阻止它使用本机库并在源树中使用该库的版本.

CMake不会改变缓存文件本身的现有条目.如果您的CMakeLists.txt文件发生显着变化,则需要从缓存文件中删除相关条目.如果您尚未手动编辑缓存文件,则可以在重新运行CMake之前将其删除.

  • 我尝试使用此命令清除缓存:`rm -rf~/.cache/*`但错误仍然存​​在.我哪里错了? (3认同)

小智 14

flutter clean + flutter pub get 是最简单的解决方案