C++ 将子目录链接在一起
在我的QT项目中有以下文件夹层次结构,我需要在ImageProcessing文件夹的类中使用实用工具文件夹的一些类。 CMAKE实用程序文件:C++ 将子目录链接在一起,c++,cmake,qt-creator,C++,Cmake,Qt Creator,在我的QT项目中有以下文件夹层次结构,我需要在ImageProcessing文件夹的类中使用实用工具文件夹的一些类。 CMAKE实用程序文件: file(GLOB Utilities_Files *.cpp *.h *.hpp) # add component add_library(Utilities ${Utilities_Files}) find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS})
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})
图像处理的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})
#include "Utilities/className.h"
当我尝试在ImageProcessing类中包含实用程序中的类时:
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})
#include "Utilities/className.h"
编译器总是失败。。不知道为什么?似乎有什么遗漏或误解
谢谢。您的行
包含目录(../Utilities)
添加路径。/Utilities
以包含目录。但是,在源文件中包含实用程序/className.h
,这使得编译器搜索文件/Utilities/className.h
和。/Utilities/Utilities/className.h
删除包含
或包含
目录中的一个实用程序
include_directories(..)
或
在这两种情况下,它都修复了编译器的问题,但现在当我使用ClassName.com时,在包含它的类中,编译器会说“ClassName尚未声明”。奇怪的否?@Maystro:错误“尚未声明类名”与查找包含文件时出现的问题无关。填写另一个问题,并提供导致该错误的代码。@Maystro Tsyvarev是对的,这是一个不同的问题(与CMake无关),应该为其打开一个新问题。另外,请点击左边的滴答声。@ Melebius,谢谢你的帮助。