2025-11-09 CMake 的生成器表达式(Generator Expression)

1、前言

在前面两篇文章2025-11-07 如何基于CMake实现Qt应用的自动Deploy2025-11-08 如何基于CMake实现软件安装包的生成中,其实都用到了CMake的生成器表达式,那么它具体是怎么定义的?如何使用呢?

2、内容

举例$<TARGET_FILE_DIR:${PROJECT_NAME}>
这里可以分两部分来看,第一部分是${PROJECT_NAME} 另一部分是$<TARGET_FILE_DIR:>。前面一部分很好理解,就是CMake中的变量, 通过${}的方式进行引用,另一部分就是生成器表达式的关键,它实际返回的是目标可执行文件所在的目录路径,目标可执行文件,就是第一部分指定的内容。
除了这个$<TARGET_FILE_DIR:>以外,类似的还有:


# 1. TARGET_FILE - 返回完整文件路径  
$<TARGET_FILE:${PROJECT_NAME}>
# → H:/src/.../output/mainwindow.exe

# 2. TARGET_FILE_NAME - 返回文件名
$<TARGET_FILE_NAME:${PROJECT_NAME}>
# → mainwindow.exe

# 3. TARGET_FILE_BASE_NAME - 返回不带扩展名的文件名
$<TARGET_FILE_BASE_NAME:${PROJECT_NAME}>
# → mainwindow

更详细的介绍可以参考CMake官方文档 [cmake-generator-expressions(7) — CMake 4.2.0-rc2 Documentation]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容