C++ 没有目录路径的CMake glob文件列表

C++ 没有目录路径的CMake glob文件列表,c++,cmake,glob,C++,Cmake,Glob,我在本网站及其他网站上进行了大量搜索,但似乎找不到解决此问题的方法: 如果使用CMake中的文件(glob..)对文件列表进行全局化,则所有文件都会列出并附加完整路径 如何在CMake中对一组文件进行全局访问,只保存文件名 我读了这本书,在这里我发现: file(GLOB <variable> [LIST_DIRECTORIES true|false] [RELATIVE <path>] [<globbing-expressions>...]) 我尝试

我在本网站及其他网站上进行了大量搜索,但似乎找不到解决此问题的方法:

如果使用CMake中的文件(glob..)对文件列表进行全局化,则所有文件都会列出并附加完整路径

如何在CMake中对一组文件进行全局访问,只保存文件名

我读了这本书,在这里我发现:

 file(GLOB <variable>
 [LIST_DIRECTORIES true|false] [RELATIVE <path>]
 [<globbing-expressions>...])
我尝试了这些解决方案,但没有一个有效:

file(GLOB_RECURSE src_files LIST_DIRECTORIES false ${SRC})

file(GLOB_RECURSE src_files LIST_DIRECTORIES=false ${SRC})

file(GLOB_RECURSE src_files LIST_DIRECTORIES(false) ${SRC})

set(LIST_DIRECTORIES false)
file(GLOB_RECURSE src_files ${SRC})

但这些似乎都不起作用。我的输出总是带有完整路径的文件列表。我知道我可以使用RELATIVE来相应地设置路径,但如果可以的话,我宁愿避免使用它


谢谢你的回答

LIST\u目录
用于在给定位置
${SRC}
同时包含文件和目录的情况下,在结果中包含/排除目录

如果要删除path,请将
foreach
get\u filename\u component
一起用于
文件(GLOB\u RECURSE…)的结果
试试

file(GLOB_RECURSE LIST_DIRECTORIES false src_files ${SRC})

文档错误,
LIST\u目录
位于变量

之前,为什么使用完整路径是个问题?您想要解决的实际问题是什么?“我知道我可以使用RELATIVE来相应地设置路径,但如果可以的话,我宁愿避免使用它。”-但是RELATIVE是从结果路径剥离目录组件的确切方法。为什么要避免它?实际的问题是,我需要全局化一组文件(来自不同的文件夹)并将它们符号链接到一个文件夹中。我想避免使用RELATIVE,因为我需要创建很多文件(GLOB…),我认为这不是很好。哦,所以使用GLOB_递归是有意的。你引用了
文件(GLOB)
的签名,所以我认为你在你的代码中使用
文件(GLOB\u RECURSE)
纯属偶然。谢谢你的回答,真是太棒了!现在它工作得很好!这将存储
list\u目录中的文件列表
变量。文档是正确的。
file(GLOB_RECURSE LIST_DIRECTORIES false src_files ${SRC})