使用CMake检索具有路径的文件 我有一个C++库,它使用CMAGE。我的库的结构如下所示: src/module1/class1.h src/module1/class1.cpp src/module1/class2.h src/module1/class2.cpp src/module2/class3.h src/module2/class3.cpp

使用CMake检索具有路径的文件 我有一个C++库,它使用CMAGE。我的库的结构如下所示: src/module1/class1.h src/module1/class1.cpp src/module1/class2.h src/module1/class2.cpp src/module2/class3.h src/module2/class3.cpp,cmake,Cmake,等等 我想使用install命令为我的项目制定安装规则。首先,我需要检索所有标题文件: FILE (GLOB_RECURSE ALL_HEADERS "*.h") 接下来,我将尝试将它们安装到C:\temp: INSTALL(FILES {$ALL_HEADER} DESTINATION "C:\\temp") 它可以工作,但生成的目录如下: temp/class1.h temp/class2.h temp/class3.h 但不是: temp/module1/class1.h temp/

等等

我想使用install命令为我的项目制定安装规则。首先,我需要检索所有标题文件:

FILE (GLOB_RECURSE ALL_HEADERS "*.h")
接下来,我将尝试将它们安装到C:\temp:

INSTALL(FILES {$ALL_HEADER} DESTINATION "C:\\temp")
它可以工作,但生成的目录如下:

temp/class1.h
temp/class2.h
temp/class3.h
但不是:

temp/module1/class1.h
temp/module1/class2.h
temp/module2/class3.h

正如您所见,CMake不“记住”文件夹路径。如何处理它?

其中一个选项是使用
安装(目录…
语法:

install(DIRECTORY src/module1 src/module2 DESTINATION "C:/temp" FILES_MATCHING PATTERN "*.h")

它工作…但它复制所有文件,而不仅仅是“*.h”。似乎模式命令不工作。它需要文件匹配模式和“/”而不是“\\”:安装(目录src/module1src/module2destination“C:/temp”文件匹配模式“*.h”)。请更新您的帖子,我回答我的问题