【发布时间】:2015-09-19 06:00:03
【问题描述】:
Qt 5 CMake manual 声明 qt5_use_modules 宏已弃用:
此宏已过时。改为使用带有 IMPORTED 目标的 target_link_libraries。
...但是qt5_use_modules 不仅仅指定链接库:它指定包含目录、必要的编译标志等等(请参阅上面链接文档中的完整描述)。
那么,假设变量 QTMODULES 包含一些应该用于项目的 Qt 模块列表,那么替换以下“已弃用”CMake 行的“推荐”方法是什么?
qt5_use_modules(${myProjectName} ${QTMODULES})
以下不起作用,主要是因为它没有添加任何 Qt 包含路径:
target_link_libraries(${myProjectName} IMPORTED ${QTMODULES})
QTMODULES 变量是否需要手动迭代,以便可以为每个单独的模块名称调用 include_directories?这似乎是从qt5_use_modules 倒退的一大步,qt5_use_modules 简单且“有效”。我错过了什么吗?
【问题讨论】: