You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMake使用GLOB_RECURSE时遍历范围超出指定目录的原因是什么

问题原因

你编写的调用代码传入了两个独立的匹配规则,GLOB_RECURSE会对多个规则的匹配结果取并集,你给出的两个规则作用分别为:

  • "foo/":匹配foo目录下的所有文件与子目录
  • "*.cpp":从当前CMakeLists.txt所在的工作目录开始,递归匹配整个项目中所有后缀为.cpp的文件

两者结果合并后,自然会返回全局所有.cpp文件的路径。

正确写法

如果要仅匹配foo目录及其所有子目录下的.cpp文件,需要将路径约束和后缀约束合并为单个glob表达式,使用**匹配任意层级的子目录:

file(GLOB_RECURSE my_list "foo/**/*.cpp")

内容的提问来源于stack exchange,提问作者einpoklum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 01:06:04