CMake:包含外部项目的错误

时间:2016-05-06 08:28:36

标签: c++ cmake

我有一个外部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

但作为一个独立的它编译。所以,我认为我必须说某个地方外部项目必须占据他的范围。但在哪里?

1 个答案:

答案 0 :(得分:1)

这还不够。您必须在项目定义中设置包含目录:

include_directories(${CMAKE_SOURCE_DIR}/include/external/)

但最好的解决方案是根据https://cmake.org/Wiki/CMake:How_To_Find_Libraries编写自己的FindExternLib.cmake