VS之间兼容性很好解决,但是qt+vs的项目转移很难解决.这是由于QT的vs插件不完善导致的.
本文将交大家如何在不同版本的vs之间,转移不同版本的qt项目.

转移步骤

  1. 清理vs/qt的 编译/临时/部分配置 文件
  2. 导入vs
  3. 转换成qt vs tools项目
  4. 配置 qt 版本
  5. 配置 qt 头文件/依赖
不一定 所有转移的项目 都需要配置 3,4,5,有时会直接兼容,但是还是建议自己 手动查看一下

案例项目介绍

  1. 本章给出的实例是由vs+qt creator 双重编译的版本
  2. 考虑到linux平台的编辑,假定最后由 qt creator编辑
  3. 项目编辑历史

    1. vs(版本1)创建qt项目
    2. qt creator编辑项目(增加一些项目文件)
    3. 再次导入vs(qt,vs版本均与之前不同,这时不仅配置有问题,还有很多项目文件vs无法识别)

清理 无用文件

  1. 转移项目时,庞大的历史数据以及临时文件往往令人非常头疼,但是全部删除的话又怕导入很麻烦
  2. 即使项目导入成功.有些临时文件仍然会影响你进行二次编译

我们先看一下 这个复杂项目的文件树

├── Debug
├── MyCad
│   ├── Debug
│   │   ├── MyCad.Build.CppClean.log
│   │   ├── MyCad.log
│   │   ├── MyCad.tlog
│   │   │   ├── CL.command.1.tlog
│   │   │   ├── CL.read.1.tlog
│   │   │   ├── CL.write.1.tlog
│   │   │   ├── MyCad.lastbuildstate
│   │   │   ├── custombuild.command.1.tlog
│   │   │   ├── custombuild.read.1.tlog
│   │   │   ├── custombuild.write.1.tlog
│   │   │   ├── link.command.1.tlog
│   │   │   ├── link.read.1.tlog
│   │   │   ├── link.write.1.tlog
│   │   │   └── unsuccessfulbuild
│   │   ├── MyLine.obj
│   │   ├── main.obj
│   │   ├── moc_mycad.obj
│   │   ├── mycad.obj
│   │   ├── qrc_mycad.obj
│   │   └── vc140.pdb
│   ├── GeneratedFiles
│   │   ├── Debug
│   │   │   └── moc_mycad.cpp
│   │   ├── Release
│   │   │   └── moc_mycad.cpp
│   │   ├── qrc_mycad.cpp
│   │   └── ui_mycad.h
│   ├── MyCad.pri
│   ├── MyCad.pro
│   ├── MyCad.pro.user
│   ├── MyCad.vcxproj
│   ├── MyCad.vcxproj.filters
│   ├── MyCad.vcxproj.user
│   ├── MyLine.cpp
│   ├── MyLine.h
│   ├── Release
│   │   ├── MyCad.Build.CppClean.log
│   │   ├── MyCad.log
│   │   ├── MyCad.tlog
│   │   │   ├── CL.command.1.tlog
│   │   │   ├── CL.read.1.tlog
│   │   │   ├── CL.write.1.tlog
│   │   │   ├── MyCad.lastbuildstate
│   │   │   ├── custombuild.command.1.tlog
│   │   │   ├── custombuild.read.1.tlog
│   │   │   ├── custombuild.write.1.tlog
│   │   │   ├── link.command.1.tlog
│   │   │   ├── link.read.1.tlog
│   │   │   └── link.write.1.tlog
│   │   ├── main.obj
│   │   ├── moc_mycad.obj
│   │   ├── mycad.obj
│   │   └── qrc_mycad.obj
│   ├── Resources
│   │   ├── line.ico
│   │   └── rectangle.ico
│   ├── cmyrect.cpp
│   ├── cmyrect.h
│   ├── factory.cpp
│   ├── factory.h
│   ├── framewnd.cpp
│   ├── framewnd.h
│   ├── ishape.cpp
│   ├── ishape.h
│   ├── linefactory.cpp
│   ├── linefactory.h
│   ├── main.cpp
│   ├── mycad.cpp
│   ├── mycad.h
│   ├── mycad.qrc
│   ├── mycad.ui
│   ├── rectfactory.cpp
│   └── rectfactory.h
├── MyCad.sdf
├── MyCad.sln
├── Win32
│   ├── Debug
│   │   ├── MyCad.exe
│   │   ├── MyCad.ilk
│   │   └── MyCad.pdb
│   └── Release
│       └── MyCad.exe
└── build-MyCad-Desktop_Qt_5_9_6_MinGW_32bit-Debug
    ├── GeneratedFiles
    │   ├── debug
    │   │   ├── moc_mycad.cpp
    │   │   └── moc_predefs.h
    │   ├── qrc_mycad.cpp
    │   ├── release
    │   └── ui_mycad.h
    ├── Makefile
    ├── Makefile.Debug
    ├── Makefile.Release
    ├── debug
    │   ├── main.o
    │   ├── moc_mycad.o
    │   ├── mycad.o
    │   └── qrc_mycad.o
    └── release

头昏眼花有没有
现在来删除一些不需要的文件

  1. .vs 文件夹 主要是一些项目配置文件
  2. 所有release debug字样的文件,这个不用说都是一些编译结果
  3. sdf文件 vs专属的临时文件
  4. build-MyCad-Desktop_Qt_5_9_6_MinGW 类似这种名称的也要删除,这是qt creator的临时文件

我们再看一下清理后的项目文件

├── MyCad
│   ├── GeneratedFiles
│   │   ├── Debug
│   │   │   └── moc_mycad.cpp
│   │   ├── Release
│   │   │   └── moc_mycad.cpp
│   │   ├── qrc_mycad.cpp
│   │   └── ui_mycad.h
│   ├── MyCad.pri
│   ├── MyCad.pro
│   ├── MyCad.pro.user
│   ├── MyCad.vcxproj
│   ├── MyCad.vcxproj.filters
│   ├── MyCad.vcxproj.user
│   ├── MyLine.cpp
│   ├── MyLine.h
│   ├── Resources
│   │   ├── line.ico
│   │   └── rectangle.ico
│   ├── cmyrect.cpp
│   ├── cmyrect.h
│   ├── factory.cpp
│   ├── factory.h
│   ├── framewnd.cpp
│   ├── framewnd.h
│   ├── ishape.cpp
│   ├── ishape.h
│   ├── linefactory.cpp
│   ├── linefactory.h
│   ├── main.cpp
│   ├── mycad.cpp
│   ├── mycad.h
│   ├── mycad.qrc
│   ├── mycad.ui
│   ├── rectfactory.cpp
│   └── rectfactory.h
└── MyCad.sln

很干净有没有,都是源码
查看一下大小,体积小了几百倍有没有

导入vs

由于删除了vs的配置文件,我们需要先对vs进行一些项目专属的配置
这里就不细说了,只是提个醒

可能会提示需要升级vs项目版本,看需求自己来

转换成qt vs tools项目

  1. 我们用vs打开项目后可能会出现一系列问题,先别管
  2. 我们先打开 qt vs tools
  3. 我们选择转换到 qt vs tools project

cv_to_qtvs.jpg

配置 qt 版本

  1. 有时我们刚用vs打开就会提示qt版本不对,我们在这一步处理这个问题
  2. 先打开 qt配置界面
  3. 我们在 这里选择qt版本号

选择版本.jpg
选择版本确定.jpg

这里有个很严重的坑!!! 有些环境下 这个界面的的ok按钮会显示不出来,直接回车就行

配置 qt 头文件/依赖

  1. 上面几步完成后有些项目就可以运行了
  2. 但是仍然有些项目文件会提示 qt的包找不到,我们只需要导入qt的头文件/依赖 即可
  3. 仍然是打开 qt配置界面.不过我们这次选择 Qt Modules
  4. 有没有感觉很眼熟,这里就是我们创建qt项目时选择的依赖,根据需要选择即可
    选择依赖_头文件.jpg

收尾

  1. 到这里项目实际上已经导入完成了,但是有些项目仍然会提示找不到xxx之类的问题
    转换成vs项目时那些 qt creator增加的项目文件不会导入到vs中
  2. 根据需要直接在vs中增加/删除文件链接就可以了
    源码就在项目目录下,只是没有链接而已
Last modification:October 9, 2018
如果觉得我的文章对你有用,请随意赞赏