VS+QT和qtcreator工程的互相转换

QT Creator的project转成Visual Studio的project

在windows下,运行Qt Command Prompt。

输入命令行:

qmake -tp vc XXX.pro

会生成文件XXX.vcxproj


Visual Studio的project转成QT Creator的project

第一步,因为原Visual Studio工程就是基于QT Template的工程,所以我们可以用VS里的QT插件里的"Create basic .pro file..."菜单选项来自动生成一个.pro文件,实际上,不仅仅生成了.pro 文件,还生成了.pri文件。但是目前的.pro文件还是不能用的,因为其中还有大量的配置需要修改,比如INCLUDEPATH和LIBS. 

第二步,修改.pro文件使其包含正确而必要的配置信息。
总结笔者对.pro文件的具体修改如下:
1. TEMPLATE = lib
2. 将DESTDIR =  xxx改成:
    Release:DESTDIR = xxx/Release
    Debug:DESTDIR = xxx/Debug
3. CONFIG += debug_and_release
4. 完善INCLUDEPATH
5. 完善DEPENDPATH (这里又有故事了:事后笔者发现,只要在LIBS里写了-L"<LIBPATH>",就没必要写DEPENDPATH了。)
6. 加上 Release:DEPENDPATH 和 Debug:DEPENDPATH
7. 类似的,完善LIBS,添加Release:LIBS和Debug:LIBS

第三步,双击改好的.pro文件,QT Creator打开此工程,选中合适的Kit,就可以build了。因为是64位机器,Kit选的是QT 5.5.1的msvc2013_64. 
最后千万要注意的是,在系统环境变量%PATH%里,对于Visual Studio的编译器cl.exe和链接器link.exe, 要选对路径。比如,对于64位的机器,路径 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64 应该被加到%PATH%中,而不是 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin 这一条在前一篇博文中已有详细阐述。

以上步骤做完后,就可以顺利地在QT Creator中进行build了。
最后还要提醒的一点是,如果更改了.pro文件,想让更改生效,必须手动删除qmake生成的Makefile, Makefile.Debug和Makefile.Release文件。

下面是一个.pro文件的实例:
[plain]  view plain  copy
  1. TEMPLATE = lib  
  2. TARGET = MyProject  
  3. Release:DESTDIR = ../../../Output/x64/Release  
  4. Debug:DESTDIR = ../../../Output/x64/Debug  
  5. QT += core qml  
  6. CONFIG += debug_and_release  
  7. DEFINES += WIN64 QT_DLL QT_QML_LIB MyProject_LIB  
  8.   
  9. INCLUDEPATH += ./GeneratedFiles \  
  10.     . \  
  11.     ./GeneratedFiles/Release \  
  12.     $$(VC_INCLUDE) \  
  13.     $$(VC_INCLUDE)/../atlmfc/include \  
  14.     $$(WINSDK_INCLUDE)/shared \  
  15.     $$(WINSDK_INCLUDE)/um  
  16.   
  17. DEPENDPATH += . \  
  18.     $$(WINSDK_LIB)/um/x64 \  
  19.     $$(VC_LIB)/amd64 \  
  20.     $$(QTDIR)/lib \  
  21.     $$(QTDIR)/bin \  
  22.   
  23. Release:DEPENDPATH +=  ../../../3rd_library/opencv/libs/Release/x64 \  
  24.     ../../../3rd_library/DirectShow/baseclasses/x64/Release  
  25.   
  26. Debug:DEPENDPATH += ../../../3rd_library/opencv/libs/Debug/x64 \  
  27.     ../../../3rd_library/DirectShow/baseclasses/x64/Debug  
  28.   
  29. MOC_DIR += ./GeneratedFiles/release  
  30. OBJECTS_DIR += release  
  31. UI_DIR += ./GeneratedFiles  
  32. RCC_DIR += ./GeneratedFiles  
  33.   
  34. Release:LIBS += -L"../../../3rd_library/DirectShow/baseclasses/x64/Release" \  
  35.     -lstrmbase \  
  36.     -L"../../../3rd_library/opencv/libs/Release/x64" \  
  37.     -lqtmain \  
  38.     -lQt5Qml \  
  39.     -lQt5Core \  
  40.     -lopencv_calib3d248 \  
  41.     -lopencv_contrib248 \  
  42.     -lopencv_core248 \  
  43.     -lopencv_features2d248 \  
  44.     -lopencv_flann248 \  
  45.     -lopencv_gpu248 \  
  46.     -lopencv_highgui248 \  
  47.     -lopencv_imgproc248 \  
  48.     -lopencv_legacy248 \  
  49.     -lopencv_ml248 \  
  50.     -lopencv_nonfree248 \  
  51.     -lopencv_objdetect248 \  
  52.     -lopencv_ocl248 \  
  53.     -lopencv_photo248 \  
  54.     -lopencv_stitching248 \  
  55.     -lopencv_superres248 \  
  56.     -lopencv_ts248 \  
  57.     -lopencv_video248 \  
  58.     -lopencv_videostab248  
  59.   
  60. Debug:LIBS += -L"../../../3rd_library/DirectShow/baseclasses/x64/Debug" \  
  61.     -lstrmbasd \  
  62.     -L"../../../3rd_library/opencv/libs/Debug/x64" \  
  63.     -lqtmaind \  
  64.     -lQt5Qmld \  
  65.     -lQt5Cored \  
  66.     -lopencv_calib3d248d \  
  67.     -lopencv_contrib248d \  
  68.     -lopencv_core248d \  
  69.     -lopencv_features2d248d \  
  70.     -lopencv_flann248d \  
  71.     -lopencv_gpu248d \  
  72.     -lopencv_highgui248d \  
  73.     -lopencv_imgproc248d \  
  74.     -lopencv_legacy248d \  
  75.     -lopencv_ml248d \  
  76.     -lopencv_nonfree248d \  
  77.     -lopencv_objdetect248d \  
  78.     -lopencv_ocl248d \  
  79.     -lopencv_photo248d \  
  80.     -lopencv_stitching248d \  
  81.     -lopencv_superres248d \  
  82.     -lopencv_ts248d \  
  83.     -lopencv_video248d \  
  84.     -lopencv_videostab248d  
  85.   
  86. LIBS += -L"$$(WINSDK_LIB)/um/x64" \  
  87.     -L"$$(VC_LIB)/amd64" \  
  88.     -L"$$(QTDIR)/lib" \  
  89.     -L"$$(QTDIR)/bin" \  
  90.     -lWtsapi32 \  
  91.     -lPathcch \  
  92.     -l3DScanningEngine \  
  93.     -lUserenv \  
  94.     -lwinmm \  
  95.     -lMf \  
  96.     -lMfplat  
  97.   
  98. include(MyProject.pri)  

猜你喜欢

转载自blog.csdn.net/lxj434368832/article/details/79558121
今日推荐