linux GLOB_NOCHECK
时间: 2024-06-04 21:05:09 浏览: 21
GLOB_NOCHECK是Linux中glob函数的一个标志位,它表示在进行通配符匹配时,如果没有匹配到任何文件名,那么不会把传入的参数作为文件名返回,而是直接将传入的参数作为匹配结果返回。也就是说,如果设置了GLOB_NOCHECK标志位,当传入的通配符表达式没有匹配到任何文件时,会将表达式本身作为匹配结果返回。
举个例子,假设我们有一个目录"/tmp",里面有两个文件"test1.txt"和"test2.txt"。如果我们使用glob函数查找"test3.txt",那么如果没有设置GLOB_NOCHECK标志位,glob函数会返回一个错误码GLOB_NOMATCH,表示没有找到任何匹配的文件。但是如果设置了GLOB_NOCHECK标志位,那么glob函数会将"test3.txt"这个字符串作为匹配结果返回。
相关问题
file(GLOB_RECURSE
file(GLOB_RECURSE) 是 CMake 中的一个命令,用于查找匹配特定模式的文件并将其添加到一个变量中。其中,GLOB_RECURSE 表示递归地查找文件,即在当前目录及其子目录中查找。使用该命令的一般语法如下:
```
file(GLOB_RECURSE <variable> <globbing-expression>)
```
其中,`<variable>` 表示要存储匹配文件的变量名,`<globbing-expression>` 是一个通配符模式,用于匹配文件名。例如,要查找所有的 C++ 源文件,可以使用以下语句:
```
file(GLOB_RECURSE CPP_SOURCES "*.cpp")
```
该语句会查找当前目录及其子目录中所有扩展名为 ".cpp" 的文件,并将它们存储在变量 CPP_SOURCES 中。需要注意的是,使用 file(GLOB_RECURSE) 命令可能会导致一些问题,例如无法跟踪文件的更改、生成时间等。因此,在实际使用时应该谨慎考虑。
cmake glob_recurse
在CMake中,`file(GLOB_RECURSE)`是一个用于匹配指定路径下所有符合通配符条件的文件的命令。具体来说,`GLOB_RECURSE`是递归查找目录下的所有文件,`file()`命令可以用来获取文件列表。
例如,如果你想捕获所有以.cpp结尾的文件作为源文件,并将它们存储在`ENDF6_SRC`变量中,可以使用以下命令:
```cmake
file(GLOB_RECURSE ENDF6_SRC ${PROJECT_SOURCE_DIR}/*.cpp)
```
这将在`PROJECT_SOURCE_DIR`目录下递归查找所有以.cpp结尾的文件,并将它们存储在`ENDF6_SRC`变量中。
如果你不想从`Test`目录添加.cpp文件,而且也不想在`File/`或`Section/`中有一个`CMakeLists.txt`文件,你可以按照以下方式进行操作:
```cmake
file(GLOB ENDF6_SRC_TOP ${PROJECT_SOURCE_DIR}/*.cpp)
file(GLOB_RECURSE ENDF6_SRC_NESTED ${PROJECT_SOURCE_DIR}/File/*.cpp ${PROJECT_SOURCE_DIR}/Section/*.cpp)
set(ENDF6_SRC ${ENDF6_SRC_TOP} ${ENDF6_SRC_NESTED})
```
这将首先获取顶级目录中所有以.cpp结尾的文件,然后递归查找`File/`和`Section/`目录下的.cpp文件,并将所有这些文件存储在`ENDF6_SRC`变量中。
顺便说一下,如果在顶级目录中执行`file(GLOB_RECURSE ...)`命令,可能会从构建文件夹中选择不需要的.cpp文件(也就是构建根位于`TopDir`内部的文件)。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)