aux_source_directory添加之后找不到头文件
时间: 2023-11-25 12:05:36 浏览: 144
在使用aux_source_directory函数将源文件添加到变量之后,通常情况下是无法自动添加头文件的。aux_source_directory函数只负责搜索并添加源文件,而不会自动搜索并添加头文件。如果您想要添加头文件,可以使用include_directories函数将头文件所在的目录添加到项目中。
相关问题
aux_source_directory什么意思,怎么用?
`aux_source_directory` 是一个 CMake 命令,用于将指定目录下的所有源文件加入到当前目录的源文件列表中。其语法如下:
```
aux_source_directory(dir VARIABLE)
```
其中,`dir` 是指定目录的路径,`VARIABLE` 是用于保存源文件列表的变量名。该命令会将指定目录 `dir` 中的所有以 `.c`、`.C`、`.cpp`、`.cxx` 和 `.c++` 结尾的源文件(不包括头文件)加入到 `VARIABLE` 变量中。
例如,假设有如下目录结构:
```
src/
├── CMakeLists.txt
└── utils/
├── file_utils.cpp
├── math_utils.cpp
└── string_utils.cpp
```
如果想将 `utils` 目录下的所有源文件加入到当前目录的源文件列表中,可以在 `CMakeLists.txt` 文件中使用如下命令:
```
aux_source_directory(utils SRCS)
add_library(my_utils ${SRCS})
```
这样,`my_utils` 库就会包含 `file_utils.cpp`、`math_utils.cpp` 和 `string_utils.cpp` 这三个源文件。
cmake INCLUDE_DIRECTORIES 和SOURCE_DIRS是干嘛的
`INCLUDE_DIRECTORIES` 和 `SOURCE_DIRS` 是 CMake 中的两个变量,用于指定头文件和源文件的路径。
- `INCLUDE_DIRECTORIES` 变量用于指定头文件的路径,即告诉编译器在哪里查找头文件。可以使用 `include_directories()` 命令来设置该变量,例如:
```cmake
include_directories(
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/third_party/include
)
```
上述代码表示将 `${PROJECT_SOURCE_DIR}/include` 和 `${PROJECT_SOURCE_DIR}/third_party/include` 目录下的头文件包含在编译中。
- `SOURCE_DIRS` 变量用于指定源文件的路径,即告诉 CMake 在哪里查找源文件。可以使用 `aux_source_directory()` 命令来设置该变量,例如:
```cmake
aux_source_directory(src SOURCE_DIRS)
```
上述代码表示将 `src` 目录下的所有源文件添加到 `SOURCE_DIRS` 变量中。
综上所述,`INCLUDE_DIRECTORIES` 和 `SOURCE_DIRS` 变量都是用于指定路径的,但是一个用于头文件,一个用于源文件。
阅读全文