windows下Qt项目转VS项目方法和注意事项

Qt4.8工程转换成VS2010的项目方法:powershell或许CMD先进入工程目录下,创建一个目录,假设目录名为vcproject,进入vcproject目录,执行
                                                    qmake -r -spec win32-msvc2010 -tp vc ../xxx.pro

  1. qmake就是qmake.exe,他存放在Qt运行库下bin目录里面,要先将其加入到系统的环境变量里面,也可输入绝对路径;
  2. -r代表要转换工程下所有的子项目;
  3. -spec 指定要转换的工程类型,支持的转换项目可以去Qt运行库下mkspec目录里面查看,Qt会将所有支持的Makefile类型全部放在mkspec目录中。如果要转换成Vs2013项目的话,-spec要跟win32-msvc2013,qmake会自动载入mkspec/win32-msvc2013目录里面qmake.conf的内容
  4. -tp是设置模板,vs项目填vc就可以了,加了此选项会生成vs的工程文件xxx.sln,否则生成Makefile
  5. 最后一个参数就是需要转换的Qt项目文件路径了,具体解释可以执行qmake --help查看

注意事项:

 1、 VS2010不能直接支持UTF8的编码方式,因此要将所有的h,cpp文件转换成UTF8-BOM格式(转换方法见另外一篇文章)

  2、解决DLL导出问题,如果出现链接时无法生成xxx.lib文件时可以尝试用下面的方法

       方法一:转换后设置每个DLL输出文件的链接库方式:Properties->Linker->General->Output File $(OutDir)\xxx.lib改成$(OutDir)\xxx.dll,否则无法正确输出dll文件 ; 

       方法二:Qt的工程文件xxx.pro中添加CONFIG+=dll                  

3、 解决dynamic_cast或者qobject_cast问题  

        方法一:Properties->C/C++->Preprocesser->Preprocesser Definnitions中去掉QT_NO_DYNAMIC_CAST;Properties->C/C++->Language->Enable Run-Time Type Information 设置为Yes(/GR);

       方法二:修改Qt运行库下mkspec/features/win32/default_pre.prf文件,将rtti_off改成rtti_on即可

4、添加额外的编译器选项,打开mkspec/win32-msvc2010/qmake.conf文件,QMAKE_CXXFLAGS是编译选项,QMAKE_LFLAGS是链接选项,例如我们想开启“最小重新生成”功能时,在QMAKE_CXXFLAGS后面添加-Gm选项即可,如下所示

qmake.conf:

windows下Qt项目转VS项目方法和注意事项_第1张图片

VS2010项目属性:

windows下Qt项目转VS项目方法和注意事项_第2张图片

你可能感兴趣的:(windows下Qt项目转VS项目方法和注意事项)