查看源代码
出自Linux Wiki
对
CMake编译Qt程序
的源代码
根据以下的原因,您无权限进行编辑这个页面操作:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
[[CMake]]的跨平台和库自动搜寻特性使其成为[[:Category:Linux程序设计|Linux环境中开发程序]]的不错选择。即便使用[[Qt]]时,如果同时依赖其它库,CMake也会显得比QMake更为灵活。 编写Qt程序的''CMakeLists.txt''的流程与qmake的pro文件大体相似,主要把cpp文件、头文件、ui文件和资源文件列出即可。 下面给出一例,说明包含在注释中: <source lang="cmake"> project(qtTst) cmake_minimum_required(VERSION 2.6) find_package(Qt4 REQUIRED) # 包含文件夹:${CMAKE_CURRENT_BINARY_DIR}和${CMAKE_CURRENT_SOURCE_DIR}用于确保moc产生的文件能正确编译。 include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) set(qtTst_SOURCES main.cpp mywindow.cpp) # 对于含有Q_OBJECT一类宏的代码(主要是头文件),需要列出以备交给moc处理 set(qtTst_HDRS myexample.h mywindow.h) # UI文件 set(qtTst_UI mywindow.ui) # 资源文件,如果有的话 set(qtTst_RESOURCES images.qrc) # qt4_automoc有时不能正常工作,建议使用下面的qt4_wrap_cpp # qt4_automoc(${CPP_SOURCES}) # 注意虽然这个命令叫wrap cpp,但实际一般处理的是含有Q_OBJECT代码的头文件 qt4_wrap_cpp(qtTst_MOC ${QOBJ_HDRS}) # .ui文件需要由uic处理 qt4_wrap_ui(qtTst_UIC ${qtTst_UI}) qt4_add_resources(qtTst_RCC ${qtTst_RESOURCES}) add_executable(myapp ${qtTst_SOURCES} ${qtTst_UIC} ${qtTst_MOC} ${qtTst_UIC} ${qtTst_RCC}) # 指明链接QtCore和QtGUI target_link_libraries(myapp ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}) # 或者使用下面更灵活的方法: # INCLUDE(${QT_USE_FILE}) # ADD_DEFINITIONS(${QT_DEFINITIONS}) # 设置用到的可选Qt库: # SET(QT_USE_QTOPENGL TRUE) # target_link_libraries(myapp ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}) </source> 更多信息,可以参考<ref>[http://cmake.org/cmake/help/cmake2.6docs.html CMake文档]</ref>和Qt Developer Network文章<ref>[http://qt-project.org/quarterly/view/using_cmake_to_build_qt_projects Using CMake to Build Qt Projects]</ref>。 对于一些特殊的情况,如在''.cpp''文件中使用Q_OBJECT宏等,可以参考这篇中文文章<ref>[http://hi.baidu.com/cyclone/blog/item/b8bea1442d6b918fb2b7dcb4.html Qt4的xxx.cpp文件内包含Q_OBJECT时CMakeLists.txt的编写]</ref>。 ==相关资料== <references /> [[Category: Qt程序设计]]
返回到
CMake编译Qt程序
。
导航
首页
社区入口
当前事件
最近更改
随机页面
帮助
查看
页面
讨论
查看源代码
历史
个人工具
登录/创建账户
搜索
简体繁体转换
不转换
简体
繁體
工具箱
链入页面
链出更改
特殊页面