本文概述:
本文记载了如何搭建 vs2013+qt5+vsqtaddin+cmake工作环境。如果你搭建过程遇到问题不能解决可以联系笔者 csdn-固本培元 [email protected]
文章分下面几部分 ,1. 对比 2. 下载及安装 3部分配置 4. cmake + qt 5 写法 及 实例下载
cmake+vs 与 qtcreator 开发的对比:
工程基本涉及的是业务大而非复杂度高时,同时调试需要的复杂度不高时,可以直接使用qtcreator,当工程比较大,调试需要的复杂度高,需要引用的第三方库比较多时,cmake+vs 会是一个更好的选择!而cmake + vs 换取的代价是会麻烦一点。
总的来说如下几点对比:
1.控制台 (qt 开发时候运行 ,不特殊处理 没有控制台,不是IDE里面那个,cmake 可以选择 WIN32选项,这样以来可以灵活的使用printf 来打印了)
2.第三方库引用 (不得不说vs 的编译器还是更强大,笔者亲身经验,qtcreator 的mingw无法链接而vs 可以)
3.网络资源 (vs 的网络资源 没法比拟,不说了)
4.开发非纯 通用业务应用 (笔者是做 流媒体及视觉开发的,开发过程中有很多其他库需要编译和引用,比如ffmpeg ,live555, boost 等,这样以来强大的cmake 让你引用过程更加流畅舒适!)
开工!
下载资源:
qt5 的下载链接:
http://mirrors.hust.edu.cn/qtproject/development_releases/qt/5.4/5.4.0-beta/
安装好了好之后会出现如下:QT5 和VA 插件如图示
然后将他们各种安装,细节不说了,安装好了之后进入 vs ,需要设置一下 qt 的 版本,如下:
在设置Qt路径时,选择Qt5.4 的路径即可,bin的上一层目录,如图示
创建工程后,如果出现索引错误,删除如下图的sdf文件重新打开工程即可
直接导入 qt 的pro 工程 可以编译通过,但是会报错如下:fatal error LNK1117: 选项“SUBSYSTEM:[email protected][email protected]”中的语法错误
解决办法: 项目属性 -> 链接器 -> 命令行 -> 其他选项 -> 删除 “ /SUBSYSTEM:WINDOWS%40QMAKE_SUBSYSTEM_SUFFIX%40 ”
使用cmake 生成 Qt 5 的工程文件! (cmake 之前需要加入qmake 的环境变量)
其核心处代码如下:cmake的使用参考如下:http://blog.csdn.net/gubenpeiyuan/article/details/44085747
这两天csdn上传有点问题,总是长传不了这个cmake qt5的 工程实例,都是开源代码做的helloword , 不存在版权问题,需要的朋友可以联系我。
include(${PROJECT_SOURCE_DIR}/rule.cmake) ##################################################################### # 添加QT5库 ##################################################################### # Find includes in corresponding build directories set(CMAKE_INCLUDE_CURRENT_DIR ON) # Instruct CMake to run moc automatically when needed. set(CMAKE_AUTOMOC ON) # Find the QtWidgets library find_package(Qt5Core) find_package(Qt5Widgets) find_package(Qt5Quick) ADD_DEFINITIONS (${QT_DEFINITIONS}) #(3) 将.h文件进行moc操作,ui文件进行uic操作,资源文件进行rcc操作 MESSAGE(STATUS "Directory " ${CMAKE_CURRENT_SOURCE_DIR} ) #SET (CENDVC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/cendvc.h) SET (CENDVC_QRCS ${CMAKE_CURRENT_SOURCE_DIR}/cendvc.qrc ) SET (CENDVC_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ${CENDVC_QRCS}) SET (CENDVC_RC_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cendvc.rc ) #QT5_WRAP_CPP (CENDVC_HEADERS_MOC ${CENDVC_HEADERS}) QT5_ADD_RESOURCES (CENDVC_QRC_RCC ${CENDVC_QRCS}) #(4) 添加工程,并连接QT库 SET(QT_USE_QTMAIN TRUE) #WIN32 ADD_EXECUTABLE (${OUPUTEXEC} ${CENDVC_SRCS} ${CENDVC_HEADERS_MOC} ${CENDVC_QRC_RCC} ${CENDVC_RC_FILE}) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) ################################################################## # ################################################################## target_link_libraries(${OUPUTEXEC} ${PROJECT_SYSFUN_NAME}) # Use the Widgets module from Qt 5. target_link_libraries(${OUPUTEXEC} Qt5::Widgets Qt5::Core Qt5::Quick)