我有一个外部cmake项目,我想在我的cmake项目中使用它。我把它放到我的include目录中,用我的项目编译它。 让我们说:
project dir
| include
| | external
| | | CMakeList.txt
| | | src
| | | | externalLib.h
| src
| CMakeList.txt
在我的cmake文件中是:
add_subdirectory(include/external)
因此,该项目已链接,当我尝试进行该项目时,会发生错误:
fatal error: src/exernalLib.h: No such file or directory
但作为一个独立的它编译。所以,我认为我必须说某个地方外部项目必须占据他的范围。但在哪里?
答案 0 :(得分:1)
这还不够。您必须在项目定义中设置包含目录:
include_directories(${CMAKE_SOURCE_DIR}/include/external/)
但最好的解决方案是根据https://cmake.org/Wiki/CMake:How_To_Find_Libraries编写自己的FindExternLib.cmake