关于unbuntu下Cmake跨平台工具的缓存文件CMakeCached.txt带来的资源不匹配问题

我们在同一个目录下创建不同的目录,因为每天的任务不同,需要编译不同的文件,但是在bulid目录下的CmakeCached.txt这个文件会缓存第一次编译的文件的信息,以至于第二次编译另一个文件的时候会出现下面的错误

:CMake Error: The source "/home/lixuhao/muduo/08/CMakeLists.txt" does not match the source "/home/lixuhao/muduo/09/CMakeLists.txt" used to generate cache.  Re-run cmake with a different source directory.

也就是说目前的Cmakelist.txt里面的资源与过去(与其说是过去不如说是上一次)generate(生成)的缓存里面的Cmakelists.txt不同。如下:

关于unbuntu下Cmake跨平台工具的缓存文件CMakeCached.txt带来的资源不匹配问题

我的处理办法是进入上一层的build目录里(执行./build.sh后,会在上一层生成一个可执行程序目录build)一直cd ,知道找到和bin在同一层的CmakeCache.txt,然后删除掉它。

 

关于unbuntu下Cmake跨平台工具的缓存文件CMakeCached.txt带来的资源不匹配问题

关于unbuntu下Cmake跨平台工具的缓存文件CMakeCached.txt带来的资源不匹配问题

注意上面build目录下的release-cpp11是因为我的gcc是支持c++11版本的,有的人build目录下可能没有这个release-cpp11,不管有没有,反正是有哪个目录就一直cd这个目录,直到找到CmakeCache.txt,然后删除掉它。

更多的Cmake手册信息;可以参考cmake官网:https://cmake.org/cmake-tutorial/和一些翻译的cmake手册