get_filename_component
时间: 2023-04-27 20:06:34 浏览: 291
get_filename_component是一个CMake函数,用于获取文件路径中的特定部分,例如文件名、目录名、扩展名等。该函数的语法如下:
get_filename_component(<VAR> <FileName> <COMP>)
其中,<VAR>是存储结果的变量名,<FileName>是要处理的文件路径,<COMP>是要获取的部分,可以是以下值之一:
- NAME:文件名(不包括扩展名)
- EXT:扩展名(包括点号)
- NAME_WE:文件名(不包括扩展名)
- DIRECTORY:目录名(不包括文件名和斜杠)
- ABSOLUTE:绝对路径
- REALPATH:解析后的绝对路径
例如,以下代码将获取文件路径中的文件名和扩展名:
get_filename_component(FILENAME ${CMAKE_CURRENT_SOURCE_DIR}/test.cpp NAME_WE)
get_filename_component(FILEEXT ${CMAKE_CURRENT_SOURCE_DIR}/test.cpp EXT)
其中,${CMAKE_CURRENT_SOURCE_DIR}/test.cpp是要处理的文件路径,NAME_WE表示获取文件名(不包括扩展名),EXT表示获取扩展名。结果将分别存储在变量FILENAME和FILEEXT中。
相关问题
CMake Error at /td_library/conf/cmake/aarch64-mix410-linux.cmake:17 (get_filename_component): get_filename_component unknown component NAME_WLE CMake Error at /td_library/conf/cmake/aarch64-mix410-linux.cmake:18 (TD_SET_HOST): TD_SET_HOST Macro invoked with incorrect arguments for macro named: TD_SET_HOST
这个错误通常出现在使用交叉编译工具链时,CMake 找不到正确的组件或参数。您需要检查 `/td_library/conf/cmake/aarch64-mix410-linux.cmake` 文件中的第 17 行和第 18 行,确保 `get_filename_component` 和 `TD_SET_HOST` 宏的参数正确。如果您不确定应该设置哪些参数,请参考您的交叉编译工具链文档或咨询相关技术支持。此外,您还可以尝试使用 `-DCMAKE_TOOLCHAIN_FILE` 参数指定正确的 CMake 工具链文件,如:
```
cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain_file ...
```
其中 `/path/to/toolchain_file` 是您的交叉编译工具链文件的路径。
get_filename_component(TARGET_NAME ${SRC_FILE} NAME_WLE)
这是 CMake 中的一个命令,用于从一个文件路径中提取文件名和扩展名。其中,${SRC_FILE} 是待处理的文件路径,NAME_WLE 表示输出的变量名,TARGET_NAME 是存储输出结果的变量。
例如,如果 ${SRC_FILE} 的值为 /path/to/file.txt,那么执行完该命令后,TARGET_NAME 的值将被赋为 file。