美文网首页程序员
在 VS2015 中使用 Qt4

在 VS2015 中使用 Qt4

作者: district10 | 来源:发表于2016-07-13 15:22 被阅读1267次

    转载自我的博客:在 VS2015 中使用 Qt4


    Qt4 对 Visual Studio 的支持止于 VS2010[1],也就是说你想要在 VS2015 使用 qt4,只能自己编译。而自己编译也是极其麻烦的,许多地方需要考虑 VS2015 所使用的编译器支持的标准,要处理许多代码的冲突。所以网上根本找不到 VS2015 + qt4 的解决方案。

    但我很喜欢 VS2015,不要钱的 Community 版本十分好使(再也不用盗版 VS2010、番茄助手了)!它自带的代码提示、补全很完善很赞。而且终于有了我以前吐槽过的 VS 没有的【切换头文件/源文件的功能】,见 愚蠢的 Visual Stuio[2]而且我现在也没时间把原来的代码迁移到 qt5(我也不知道这工作量有多大)。所以我想,要是能在 VS2015 里使用 qt4,那该多好啊。

    于是我搜到了 sandym/qt-patches: Patches to some release versioin of Qt I use,这人提供了 qt4 的补丁(patch),这样就能用 VS2015 编译 qt4 源码,生成必要的 *.lib*.dll 文件了。

    这样,我编译了 VS2015 能用的 qt4。

    跑起来

    这是一个精简了的 vs2015 能用的 qt4 打包:http://whudoc.qiniudn.com/2016/vs2015-qt4-playground.zip。虽然只有 14 MB,使用它你可以编译运行大多数 qt4 工程代码。

    这个打包里还包含一个 qt 样例程序,很容易运行起来。

    使用方法如下:

    1. 解压 vs2015-qt4-playground.zip
    2. 解压里面的 qt4-vs2015x64.7z
    3. 把里面的 qt4-vs2015x64\bin 目录的完整路径拷贝,粘贴到系统变量 PATH 的前面;
    4. 用 cmake 编译 vs2015 工程(选择 Visual Studio 14 VS2015 WIN64);
    5. 用 vs2015 打开工程,编译 release 版本程序,然后运行。

    为了让这个 build 很小,我去掉了 debug 的部分,所以只能编译 release。而且有些模块被我去掉了。(比如 qt-libjpeg,所以连 jpeg 格式的图片都无法加载。)

    获取一个更完整的 build

    我还编译了其它几个不同的 qt4 vs2015x64 build。比如这个:qt-4.8.7-vs2015-build1.7z,压缩包 108 MB,解压后 951 MB。跟上面的配置方法一样。

    编译自己的 build

    或许你想要更完整的支持,或许你想要更小的发行版。总之你想自己编译,可以参考我的 district10/qt4-vs2015x64: Qt4 & Visual Studio 2015 (vc14).。里面有源码下载,以及 build 的步骤。

    题外话

    Qt5 有官方的 VS2015 的二进制发行,使用起来也很简单。Qt5 和 CMake 一起使用也很容易,只要在 CMakeLists.txt 里加上搜索路径即可,比如“C:/Qt/VS2015x64/Qt5.6.0/5.6/msvc2015_64”,具体可以看我的qt5-project
    Qt4 和 Qt5 也不会冲突。

    qt4 + vs2015,代码:<https://github.com/district10/cmake-templates/tree/master/qt4-project> qt5 + vs2015,代码:<https://github.com/district10/cmake-templates/tree/master/qt5-project>
    1. Qt 官方的 release 里,只有对 vs2008 和 vs2010 的支持。Qt4 最后一个 release 是 qt-4.8.7,那时候 vs2015 还没出来吧。

    2. 而且,怎么说呢,VS 原本没有这个功能是可以理解的。因为头文件的声明和 cpp 的实现本来就可以是随意的。以我 camke-templates 里的functions.h 为例,它的实现就分布在 cubic.c、square.c、power4.c、power5.c。这样的情况下,Qt creator 那个【切换头文件/源文件(F4)】其实是不严谨的。而 VS 的【Go to Definition(F12)】则很“正确”。现在 VS2015 有了【Toggle Header / Code File(Ctrl+K,Ctrl+O)】,这个表达是极为严谨且精准的。(我以为 VS2015 真的可以“智能”地跳转,结果发现居然这功能居然没反应。不知道是不是自己的电脑太慢,或者是设置得不对。就我这样?)

    相关文章

      网友评论

        本文标题:在 VS2015 中使用 Qt4

        本文链接:https://www.haomeiwen.com/subject/dposjttx.html