问题描述
在服务器上拷贝别人的整个项目文件夹(别人已经执行过了cmake命令)过来自己的文件夹下,并且执行cmake命令的时候出现了问题:
CMake Error: The current CMakeCache.txt directory /home/my/build/CMakeCache.txt is different than the directory /data1/others/build where CMakeCache.txt was created. This may result in binaries being created in the wrong place. If you are not sure, reedit the CMakeCache.txt
CMake Error: The source "/home/my/CMakeLists.txt" does not match the source "/data1/others/CMakeLists.txt" used to generate cache. Re-run cmake with a different source directory.
文件目录如下:
my
|----build
|----CMakeLists.txt
|----xxx.cpp
others
|----build
|----CMakeLists.txt
|----xxx.cpp
解决办法
将build中的文件全部清空,再在build文件路径下执行"cmake .."命令即可。原因可能是别人的cmake命令生成的那堆乱七八糟的文件里面有一些是有导向作用的,好像是因为CMakeCache.txt文件:当cmake第一次运行一个空的构建的时候,他就会创建一个CMakeCache.txt文件,文件里面存放了一些可以用来制定工程的设置,比如:变量、选项等,具体细节读者感兴趣的话自己去了解吧。