"找不到源文件":调试cmake查找的位置

时间:2017-10-14 07:14:02

标签: debugging cmake

在设计我的CMakeLists时,我经常遇到这种错误:

Cannot find source file:

  foo.hpp

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx

要调试这些问题,我真的想知道CMake在哪里寻找这个文件!

我可以找到一些关于此的SO问题,但它们总是特定于给定项目,而不是通用调试解决方案。

1 个答案:

答案 0 :(得分:0)

当您将file.hpp传递给add_executable()add_library()命令时,CMake会搜索该文件:

  • 在当前源目录下( CMAKE_CURRENT_SOURCE_DIR ),
  • 在当前二进制目录下( CMAKE_CURRENT_BINARY_DIR )。

此外,如果给定的文件是通过当前add_custom_command()文件中的CMakeLists.txt命令生成的(也就是说,该文件尚不存在,那么CMake能够检测到它,但它将是以CMake已知的方式在 build 阶段创建。