如何用CMake实现qmake中OTHER_FILES的功能?
在Qt Creator中添加额外可访问文件(qmake & CMake)
在Qt项目开发时,我们经常需要让Qt Creator能直接访问项目里的非源码类文件(比如说明文档、许可证、示例代码等),下面分别介绍qmake和CMake两种构建系统的实现方式:
一、基于qmake的项目配置
qmake专门提供了OTHER_FILES变量来处理这类需求,它能指定那些不需要编译但需要在IDE中便捷访问的文件。配置示例如下:
QT += core gui widgets TARGET = example-program TEMPLATE = app HEADERS = mainwindow.h SOURCES = main.cpp mainwindow.cpp # 添加需要在Qt Creator中显示的额外文件 OTHER_FILES = README.md LICENCE examples/network/server.c
配置完成后,你就能在Qt Creator的项目视图里直接找到并打开这些文件,不用再手动去文件系统里翻找。
二、基于CMake的项目配置
CMake没有像qmake那样直接对应的OTHER_FILES变量,但我们可以通过自定义目标的方式实现同样的效果,让Qt Creator识别并显示这些文件。完整配置示例:
cmake_minimum_required(VERSION 3.5) project(example CXX) # 启用Qt的MOC自动生成和当前目录包含 set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) # 查找Qt5的必要组件 find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED) # 定义需要显示的额外文件列表 set(OTHER_FILES README.md LICENCE examples/network/server.c ) # 创建自定义目标,将额外文件关联到项目中 add_custom_target(ProjectExtraFiles ALL SOURCES ${OTHER_FILES}) # 定义项目可执行文件及其源码文件 add_executable(example-program main.cpp mainwindow.cpp mainwindow.h ) # 链接Qt5的库 target_link_libraries(example-program Qt5::Core Qt5::Gui Qt5::Widgets)
这里通过add_custom_target创建了一个名为ProjectExtraFiles的目标,把所有额外文件作为它的源文件,这样Qt Creator就会把这些文件加载到项目视图里,和qmake配置后的使用体验完全一致。
内容的提问来源于stack exchange,提问作者Zeta
相关产品推荐
相关产品推荐

