使用什么而不是“qt5_use_modules”
What to use instead of `qt5_use_modules`?
Qt 5 CMake 手册指出qt5_use_modules
宏已被弃用:
此宏已过时。请改用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
倒退的重大一步,这很简单,而且"只是有效"。我错过了什么吗?
关于使用 IMPORTED 目标的消息实际上是指 Qt5 的 CMake 模块为您提供的生成目标,而不是您应该在target_link_libraries
宏上设置 IMPORTED 属性。 例如,类似这样的内容:
target_link_libraries(${myProjectName} Qt5::Core Qt5::Widgets)
将负责添加所有必要的包含路径、链接路径和库,以使用 Qt5Core
和 Qt5Widgets
模块。
相关文章:
- Qt5:使用QCommandLineParser类时出现奇怪的编译错误
- 如何处理 c++ 中类实现中的"invalid use of non-static data member"?
- phytec phyBOARD iMX-6在从闪存而不是SD卡运行qt5 opengles应用程序时表现不佳(FPS减半
- C++ "error: invalid use of void expression"
- 我看到"use of undeclared identifier"错误,有人可以告诉我如何解决它吗?
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 控制台输出在 Qt5 中未正确显示
- 在Qt5中使用QTextSteam时的"使用已删除功能"
- 收到错误"invalid use of non-static data member 'stu::n' "
- 模式"allocate memory or use existing data"
- Qt5 从 MySQL 数据库中选择数据
- Qt5 远程对象 + 自定义类型,但不在 POD 中
- Qt5 用户界面编译器:-i 选项不可用
- Qt5 throws std::bad_alloc
- 如何避免在 cmake 中自动链接 Qt5 库?
- C++ "error: use of overloaded operator '*' is ambiguous"似乎只有一场比赛
- Is it good to use SDL_PIXELFORMAT_UNKNOWN?
- C++ "Invalid use of 'this' in non-member function" ,
- 动态更改 qt5 选项卡名称
- 可能的Qt5错误:调用setFixedSize()禁用主窗口的关闭按钮(在Win7下)