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