cmake link 个子目录在一起

cmake link subdirectories together

我的 QT 项目中有以下文件夹层次结构,我需要在 ImageProcessing 文件夹的 类 中使用 Utility 文件夹的一些 类。

实用程序的 CMAKE 文件:

file(GLOB Utilities_Files *.cpp *.h *.hpp)

# add component
add_library(Utilities ${Utilities_Files})

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(Utilities ${OpenCV_LIBRARIES})

ImageProcessing 的 CMAKE 文件:

file(GLOB ImageProcessing_FILES *.cpp *.h *.hpp)

# add component
add_library(ImageProcessing ${ImageProcessing_FILES})

include_directories(../Utilities)
target_link_libraries(ImageProcessing Utilities)


find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(ImageProcessing ${OpenCV_LIBRARIES})

当我尝试在 ImageProcessing 的 类 中包含 Utilities 中的 类 时:

#include "Utilities/className.h"

编译器总是失败。不知道为什么?好像漏掉或者误解了什么。

谢谢。

您的行 include_directories(../Utilities) 添加路径 ../Utilities 以包含目录。但是,您在源文件中包含 Utilities/className.h,这会使编译器搜索文件 ./Utilities/className.h../Utilities/Utilities/className.h.

删除 include_directories#include 中的 Utilities 之一。

include_directories(..)

#include "className.h"