添加头文件时出现Cmake构建错误 - 致命错误:找不到文件

时间:2014-11-07 04:30:45

标签: cmake header-files fatal-error

我使用cmake在Ubuntu 14.04中构建C ++源文件。

我有一个主源文件,包含一个包含其他来源函数的头文件。

我的主要源文件是DisplayImage.cpp,我的头文件是Camera.h,源文件是Camera.cpp。

位于文件夹中的每个文件。我有一个CmakeLists.txt:

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp Camera.cpp )
target_link_libraries( DisplayImage  ${OpenCV_LIBS} )

当我执行命令“cmake”时。在终端中,它配置完成。之后,我执行命令“make”,我得到致命错误:致命错误:Camera.h:没有这样的文件或目录

请帮帮我。我的CmakeLists.txt错了吗?

1 个答案:

答案 0 :(得分:0)

您应该使用target_include_directories()告诉CMake将包含标头的特定 include目录DisplayImage目标相关联。假设您的Camera.h文件与Camera.cpp在同一目录中,则可以使用CMAKE_CURRENT_SOURCE_DIR指定此目录。您还应该在此处添加${OpenCV_INCLUDE_DIRS},如“将OpenCV与CMake一起使用” tutorial所示。

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp Camera.cpp )
target_include_directories(DisplayImage PRIVATE 
    ${CMAKE_CURRENT_SOURCE_DIR} 
    ${OpenCV_INCLUDE_DIRS}
)
target_link_libraries( DisplayImage PRIVATE ${OpenCV_LIBS} )

注意:总是 在{{1}中指定作用域参数(例如PUBLICPRIVATEINTERFACE)是CMake的一种好做法}命令。