vscode mingw和msvc切换编译 qt+libyuv

记录一下,最终是想实现这四步,用vs2019开发调试,vscode调试,ubuntu交叉编译

一。vs2019+msvc编译 qt+libyuv

二。vscode+msvc编译qt+libyuv

三。vscode+mingw编译qt+libyuv

四。ubuntu编译

二个大坑

一。window下qt5.15.2工具安装qt5.15.2绑定mingw8.1.0,不支持C17

而ubuntu下qt5.15.2工具安装qt5.15.2需要指定你自己的mingw版本

因此window下qt5.15.2工具需要安装6.6.1,相当于用qt5安装程序装了qt6

二。vscode的项目使用vs2019打开时,vs2019会生成CMakePresets.json和CMakeUserPrests.json

这二个json使用的是vs2019配置,和vscode不兼容。如果想保持兼容需要设置环境变量,我这里因为要兼顾qt5的开发环境,没有选择兼容。这样,当从vs2019切换到vscode时需要手工删除这二个json,从vscode切换到vs2019会自动生成

三。因为msvc不支持64位汇编,所以才用mingw编译用msvc调试。只是舍不得vs2019的使用习惯。

简单步骤:

一。vscode->f1->qt->new obj->helloqt->yes ui->cmake,这里是带ui资源的qt项目

二。生成新的qt项目后,**必须重启vscode**

三。vscode->f1->cmake->select kit ->选择mingw或者选择msvc

四。cmakelist.txt里修改qt5为qt6,c11改为c17

五。环境没问题的话,这里编译完成调试正常。

六。关闭vscode,用vs2019打目录

七。菜单->扩展->Qt vs tools->vserions选择6.6.1

八。解决方案选择cmakelists.txt右键cmake 删除缓冲 **vscode的cmake缓冲和vs2019的不通用**

九。cmake生成

十。解决方案中找到vs2019自动生成的heoolqt.sln,右键生成

十一。解决方案中找到刚生成的helloqt.exe,右键调试,提示缺少qt6 dll

十二。开始菜单找到Qt 6.6.1 (MSVC 2019 64-bit),运行windeployqt6.exe helloqt.exe,打包qt6环境到helloqt.exe目录

十三。调试成功

十四。关闭vs2019打开vscode,因为vs2019自动生成的josn里有qtdebug和qtrelesa,vscode会自动弹出选择项,不管他。

十五。删除CMakePresets.json和CMakeUserPrests.json

十六。f1->cmake删缓冲->cmake kit选mingw->生成

十七。f5调试

至此,vscode和vs2019可以来回切换,vscode里mingw和msvc可以来回切换,mingw编64位汇编libyuv.a也可以给vs2019使用,ubuntu下只用改CMAKE_PREFIX_PATH就可以编译。

下边是一些兼容性处理

if (MSVC)

    set(CMAKE_PREFIX_PATH "d:/Qt/Qt5.15.2/6.6.1/msvc2019_64") # Qt Kit Dir

elseif (MINGW)

    set(CMAKE_PREFIX_PATH "d:/Qt/Qt5.15.2/6.6.1/mingw_64") # Qt Kit Dir

endif()

if (MSVC)

    set(CMAKE_CXX_FLAGS "/permissive- /Zc:__cplusplus")

endif()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值