大约一年前,我询问了CMake中的头依赖关系.
我最近意识到问题似乎是CMake认为那些头文件是项目外部的.至少,在生成Code :: Blocks项目时,头文件不会出现在项目中(源文件会出现).因此,在我看来,CMake认为这些标题是项目的外部,并且不会在依赖项中跟踪它们.
在CMake教程中快速搜索只指出include_directories哪个似乎没有我想做的...
向CMake发出信号通知特定目录是否包含要包含的标头的正确方法是什么,并且生成的Makefile应该跟踪这些标头?
我有一个目录main,它有以下子目录:A、B、C、D、Test。
在测试中,我有一个包含以下内容的 CMakeLists 文件:
cmake_minimum_required(VERSION 2.8)
enable_testing()
set(TEST_EXE_NAME test)
add_executable(${TEST_EXE_NAME} test.cpp)
add_test(NAME "testDatabase" COMMAND ${TEST_EXE_NAME})
target_include_directories(Test PUBLIC ./)
target_include_directories(Test A B C D)
target_link_libraries(Test A B C D)
Run Code Online (Sandbox Code Playgroud)
在测试中,我有一个可执行文件,其中 #includes 来自 A、B、C 和 D 的几个头文件。
但是,执行 make 后,我收到消息 cmake 无法从 A、B、C 和 D 中找到这些头文件。
我怎样才能让它消失?