为什么CMake尝试编译我的已删除文件?

时间:2016-10-27 10:40:09

标签: cmake

我作为错误保护添加了行

if ( ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR} )
    message( FATAL_ERROR "In-source builds not allowed." )
endif()
在我真实的东西面前。出于测试目的,我cd ..cmake .保护工作正常,这些行阻止了源内构建,并打印出我期望的错误消息。之后,我cd buildcmake ..。现在我收到相同的错误消息。甚至,如果我cd ..;rmdir build;mkdir build;cd build;cmake ..。我注意到,尽管有这种保护,CMake生成的文件都写在我的源目录中。如果我手动删除所有这些文件,注释掉保护行,CMake希望将其文件放在源代码中,而不是放在其构建子目录中。

在控制台中,我收到消息

CMake Error: The current CMakeCache.txt directory /home/me/.local/share/Trash/files/build_3686731566269/CMakeCache.txt is different than the directory /home/me/DEVEL/cpp/sandbox/myprog/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 directory "/home/me/.local/share/Trash/files" does not appear to contain CMakeLists.txt.

这是正确的,但我不想从垃圾桶中编译,也不想从已删除的文件中编译。我删除了旧的工作目录,创建了一个新的目录,将源文件复制到新目录,重新启动。错误始终如一。另外,如果我使用Kdevelop中的相同CMakeLists文件,它可以正常工作。

最后我清空了垃圾桶,重新构建了构建,现在每个字符串再次正常工作。 这是怎么回事?

0 个答案:

没有答案