域名绑定ip网站吗,邯郸房产信息网恋家网,织梦做视频网站可以吗,网站打开很慢怎么做优化CMake与Qt4/Qt5的结合使用指南 一、同时使用Qt 4和Qt 5二、Qt构建工具2.1 AUTOMOC2.2 AUTOUIC2.3 AUTORCC 三、ORIGIN_autogen目标四、Visual Studio生成器五、Windows上的qtmain.lib六、其他文章推荐 在CMake中#xff0c;您可以方便地找到并使用Qt 4和Qt 5库。Qt 4库… CMake与Qt4/Qt5的结合使用指南 一、同时使用Qt 4和Qt 5二、Qt构建工具2.1 AUTOMOC2.2 AUTOUIC2.3 AUTORCC 三、ORIGIN_autogen目标四、Visual Studio生成器五、Windows上的qtmain.lib六、其他文章推荐 在CMake中您可以方便地找到并使用Qt 4和Qt 5库。Qt 4库通过CMake自带的
FindQt4模块来查找而Qt 5库则通过Qt 5自带的“配置文件包”来查找。 一、同时使用Qt 4和Qt 5
在同一个CMake构建系统中您可以同时使用Qt 4和Qt 5。以下是一个示例CMakeLists.txt文件的代码
cmake_minimum_required(VERSION 3.8.0 FATAL_ERROR)project(Qt4And5)set(CMAKE_AUTOMOC ON)find_package(Qt5 COMPONENTS Widgets DBus REQUIRED)
add_executable(publisher publisher.cpp)
target_link_libraries(publisher Qt5::Widgets Qt5::DBus)find_package(Qt4 REQUIRED)
add_executable(subscriber subscriber.cpp)
target_link_libraries(subscriber Qt4::QtGui Qt4::QtDBus)需要注意的是CMake目标不能同时链接Qt 4和Qt 5。如果尝试这样做CMake会发出警告。
二、Qt构建工具
Qt依赖一些捆绑工具来进行代码生成例如moc元对象代码生成、uic小部件布局和填充以及rcc虚拟文件系统内容生成。这些工具可以在适当条件下由CMake自动调用适用于Qt 4和Qt 5。
2.1 AUTOMOC
AUTOMOC目标属性控制CMake是否检查目标中的C文件以确定是否需要运行moc并在适当时机创建执行规则。如果在头文件中找到AUTOMOC_MACRO_NAMES中的宏CMake将运行moc并生成相应的moc_basename.cpp文件。
生成的moc_*.cpp和*.moc文件将存放在AUTOGEN_BUILD_DIR/include目录中并自动添加到目标的INCLUDE_DIRECTORIES中。
对于多配置生成器包括目录为AUTOGEN_BUILD_DIR/include_CONFIG。
2.2 AUTOUIC
AUTOUIC目标属性控制CMake是否检查目标中的C文件以确定是否需要运行uic。如果找到与pathui_basename.h匹配的预处理#include指令并且存在相应的basename.ui文件则会执行uic以生成相应的文件。
生成的ui_*.h文件将放在AUTOGEN_BUILD_DIR/include目录中并自动添加到目标的INCLUDE_DIRECTORIES中。
2.3 AUTORCC
AUTORCC目标属性控制CMake是否在源文件后缀为.qrc时创建规则以在适当的时间执行rcc。
三、_autogen目标
moc和uic工具的执行由CMake生成的合成ORIGIN_autogen自定义目标管理。默认情况下该目标继承了ORIGIN目标的依赖关系。
四、Visual Studio生成器
在使用Visual Studio生成器时CMake生成一个PRE_BUILD自定义命令而不是ORIGIN_autogen自定义目标。
五、Windows上的qtmain.lib
在Windows上Qt 4和5的QtGui库的IMPORTED目标指定将链接Qt捆绑的qtmain.lib静态库。如果要禁用此行为可以为基于Qt 5的目标启用Qt5_NO_LINK_QTMAIN属性或为基于Qt 4的目标启用QT4_NO_LINK_QTMAIN属性。
add_executable(myexe WIN32 main.cpp)
target_link_libraries(myexe Qt4::QtGui)add_executable(myexe_no_qtmain WIN32 main_no_qtmain.cpp)
set_property(TARGET main_no_qtmain PROPERTY QT4_NO_LINK_QTMAIN ON)
target_link_libraries(main_no_qtmain Qt4::QtGui)使用CMake构建系统时结合Qt 4和Qt 5提供了灵活性和强大功能。通过适当地配置CMake属性和目标您可以有效管理Qt的代码生成和库链接提升开发效率。希望这篇文章能够帮助您更好地理解和使用CMake与Qt的结合。
六、其他文章推荐
CMakeLists.txt从入门到精通看这篇就够Cmake中Debug 、 Release 、RelWithDebInfo和 MinSizeRel类型说明cmake构建动态库实例cmakelistC构建简单静态库实例cmakelist