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
相关产品推荐
相关产品推荐

