VS2019+QT代码与QtCreator工程的互相转换

news/2024/11/20 7:10:49/

QT Creator的project转换成Visual Studio的project

在windows10下,运行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.4.1的msvc2017_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文件的实例:

 TEMPLATE = lib  TARGET = MyProject  Release:DESTDIR = ../../../Output/x64/Release  Debug:DESTDIR = ../../../Output/x64/Debug  QT += core qml  CONFIG += debug_and_release  DEFINES += WIN64 QT_DLL QT_QML_LIB MyProject_LIB  INCLUDEPATH += ./GeneratedFiles \  . \  ./GeneratedFiles/Release \  (VCINCLUDE) (VCINCLUDE) 
(VC_INCLUDE)/../atlmfc/include \  (WINSDKINCLUDE)/shared (WINSDKINCLUDE)/shared 
(WINSDK_INCLUDE)/um  DEPENDPATH += . \  (WINSDKLIB)/um/x64 (WINSDKLIB)/um/x64 
(VC_LIB)/amd64 \  (QTDIR)/lib (QTDIR)/lib 
(QTDIR)/bin \  Release:DEPENDPATH +=  ../../../3rd_library/opencv/libs/Release/x64 \  ../../../3rd_library/DirectShow/baseclasses/x64/Release  Debug:DEPENDPATH += ../../../3rd_library/opencv/libs/Debug/x64 \  ../../../3rd_library/DirectShow/baseclasses/x64/Debug  MOC_DIR += ./GeneratedFiles/release  OBJECTS_DIR += release  UI_DIR += ./GeneratedFiles  RCC_DIR += ./GeneratedFiles  Release:LIBS += -L"../../../3rd_library/DirectShow/baseclasses/x64/Release" \  -lstrmbase \  -L"../../../3rd_library/opencv/libs/Release/x64" \  -lqtmain \  -lQt5Qml \  -lQt5Core \  -lopencv_calib3d248 \  -lopencv_contrib248 \  -lopencv_core248 \  -lopencv_features2d248 \  -lopencv_flann248 \  -lopencv_gpu248 \  -lopencv_highgui248 \  -lopencv_imgproc248 \  -lopencv_legacy248 \  -lopencv_ml248 \  -lopencv_nonfree248 \  -lopencv_objdetect248 \  -lopencv_ocl248 \  -lopencv_photo248 \  -lopencv_stitching248 \  -lopencv_superres248 \  -lopencv_ts248 \  -lopencv_video248 \  -lopencv_videostab248  Debug:LIBS += -L"../../../3rd_library/DirectShow/baseclasses/x64/Debug" \  -lstrmbasd \  -L"../../../3rd_library/opencv/libs/Debug/x64" \  -lqtmaind \  -lQt5Qmld \  -lQt5Cored \  -lopencv_calib3d248d \  -lopencv_contrib248d \  -lopencv_core248d \  -lopencv_features2d248d \  -lopencv_flann248d \  -lopencv_gpu248d \  -lopencv_highgui248d \  -lopencv_imgproc248d \  -lopencv_legacy248d \  -lopencv_ml248d \  -lopencv_nonfree248d \  -lopencv_objdetect248d \  -lopencv_ocl248d \  -lopencv_photo248d \  -lopencv_stitching248d \  -lopencv_superres248d \  -lopencv_ts248d \  -lopencv_video248d \  -lopencv_videostab248d  LIBS += -L"(WINSDKLIB)/um/x64" −L"(WINSDKLIB)/um/x64" −L"
(VC_LIB)/amd64" \  -L"(QTDIR)/lib" −L"(QTDIR)/lib" −L"
(QTDIR)/bin" \  -lWtsapi32 \  -lPathcch \  -l3DScanningEngine \  -lUserenv \  -lwinmm \  -lMf \  -lMfplat  include(MyProject.pri) 


http://www.ppmy.cn/news/789017.html

相关文章

Spark(13):RDD之广播变量和累加器

目录 0. 相关文章链接 1. 广播变量 2. 累加器 2.1. 实现原理 2.2. 系统累加器 2.3. 自定义累加器 0. 相关文章链接 Spark文章汇总 1. 广播变量 广播变量用来高效分发较大的对象。向所有工作节点发送一个较大的只读值&#xff0c;以供一个或多个 Spark 操作使用。比如&a…

华为mate20 android,华为Mate20全曝光,可能是最后一个版本

原标题&#xff1a;华为Mate20全曝光&#xff0c;可能是最后一个版本 要说现在能够坐稳国内智能手机高端市场的厂商&#xff0c;除了三星苹果恐怕就要数华为了。现在的华为&#xff0c;已经形成P系列和Mate系列两款中高端系列&#xff0c;再往下则又有荣耀系列与小米魅族这样的…

mate20pro怎样装鸿蒙系统,华为放大招!华为Mate20系列也能拍月亮,以后还能升级鸿蒙...

上半年国内手机市场的新机数量明显减少&#xff0c;但也出现了一些可喜的变化&#xff0c;比如一加7 Pro使用2K分辨率90Hz刷新的屏幕&#xff0c;比如低亮度无频闪的DC调光。相比前一项&#xff0c;DC调光更值得关注&#xff0c;因为这是在网友的驱动下出现的改变。 支持DC调光…

mate20 X5G版即将上市,但mate30才更值得期待

华为的mate20 X5G版已获得3C认证&#xff0c;意味着它即将在国内上市&#xff0c;成为华为首款在国内上市的5G手机&#xff0c;不过这款手机是采用外挂5G基带的方式支持5G&#xff0c;在技术上并不太成熟&#xff0c;可能存在不稳定、功耗过大等问题&#xff0c;而更成熟的5G手…

实测华为Mate 20 Pro:配备麒麟980芯片后AI到底有多强

三井 发自 凹非寺 量子位 报道 | 公众号 QbitAI 这是一个发布新手机必谈AI的时代。 也是一个需要测过才知道AI行不行的时代。 前不久&#xff0c;华为发布了新一代旗舰手机Mate 20系列。配备AI芯片麒麟980&#xff0c;双NPU&#xff0c;号称六项业界第一。 而且&#xff0c;余承…

realme GT2 Pro对比小米12哪个好

首先在性能方面&#xff0c;虽然二者都是高通骁龙8处理平台&#xff0c;但是在性能释放上面&#xff0c;realme GT2 Pro则更加激进一些&#xff0c;这样子的好处就是玩那些比较耗费资源的游戏的时候&#xff0c;realme GT2 Pro有更高的帧率表现&#xff0c;不过代价就是手机有更…

鸿蒙系统mate20能用吗啊,鸿蒙系统mate20可以更新吗

就在这几天&#xff0c;鸿蒙系统在网上突然大热&#xff0c;很多使用华为的朋友都参与测试并且更新了这款系统。但是并不是所有的华为手机目前都可以更新鸿蒙系统&#xff0c;其中就包括mate20等。下面就一起来看看哪些手机可以更新吧。 鸿蒙系统mate20可以更新吗 答&#xff1…

红米Note12T Pro对决红米Note12 Turbo:相差200元谁更值得买

在介绍这两款产品的时候&#xff0c;真怕手滑把产品名字写错了。在今年618前夕&#xff0c;红米Note12T Pro上市。这款手机堪称是高性价比机型&#xff0c;以最低1699元的价格给配上了天玑8200-Ultra芯片&#xff0c;而且起步就是8GB256GB。不过这款产品也让一些小伙伴纠结&…