专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

一文分析QtCreator中MSVC编译套件

  一、开篇
  在QtCreator中使用MSVC编译套件构建项目时,在Kits对话框中编译器一栏会识别出许多MSVC编译套件,实际项目开发中,如何选择这些编译套件呢,本文就这个问题展开,主要内容如下:
  (1)描述VisualStudio下的命令行工具的环境变量和几种命令提示符。
  (2)描述VisualStudio的命令文件。
  (3)描述QtCreator对MSVC编译套价的识别。
  (注1:本文的前提是已经完成对VisualStudio集成开发工具的安装,如果没有安装,QtCreator将会找不到MSVC相关的编译套件!)
  (注2:本文基于完整安装的VisualStudio集成开发工具。单独安装MSVC编译套件不在本文讨论范围内!哈哈)二、VisualStudio命令行生成的路径和环境变量
  MSVC的命令行工具会使用PATH、TMP、INCLUDE、LIB和LIBPATH环境变量,还会使用一些特定的已安装工具、平台和SDK的环境变量。即使是简单VisualStudio安装,也会设置二十多个或更多的环境变量。这些环境变量非常多,所以如果在Windows环境变量中自行单个添加,可能会把自己折腾惨,哈哈!所以在使用MSVC的命令行工具时,必须使用命令提示符快捷方式或自定义命令文件来设置环境变量。不建议在Windows环境中自行设置环境变量。
  在windows的命令行和MSVC命令行下分别输入set命令,可以查看环境变量,如下图所示:
  左边是windows的命令行,右边是MSVC命令行,可见在MSVC命令行下新建了许多环境变量(PATH、TMP、INCLUDE、LIB和LIBPATH)且添加了很多值。这些环境变量,在我们使用命令行来构建项目工程时,都会使用到,缺一不可!三、VisualStudio命令提示符
  命令提示符本质是对windows命令行的一个脚本。在安装VisualStudio后,命令提示符快捷方式会安装在Windows开始菜单中特定版本的VisualStudio文件夹中,大致结构如下:x86本机工具命令提示符将环境设置为使用32位x86本机工具生成32位x86本机代码。x64本机工具命令提示符将环境设置为使用64位x64本机工具生成64位x64本机代码。x86x64兼容工具命令提示符将环境设置为使用64位x64本机工具生成32位x86本机代码。x64x86兼容工具命令提示符将环境设置为使用64位x64本机工具生成32位x86本机代码。
  (注:由于选择的工具负载不同,命令提示符会有所不同,本文选择的是C桌面应用构建相关的负载,且只选择了几种工具套件组合)
  安装后,结果如下图所示:
  【备注】多个命令行工具或工具选项可能需要管理员权限。如果在使用这些命令行时遇到权限问题,建议使用以管理员身份运行选项打开开发人员命令提示窗口。右键单击以打开命令提示窗口的快捷菜单,然后依次选择更多、以管理员身份运行。四、VisualStudio命令文件位置
  对于2019VisualStudio,64位系统上的典型安装位置是位于ProgramFilesMicrosoftVisualStudio2022下,其中可能是Community、Professional、Enterprise、BuildTools或自定义名称。
  开发人员的命令提示符命令文件VsDevCmd。bat位于Common7Tools子目录中。如果未指定参数,该命令文件会设置使用x86生成32位x86代码的开发环境。
  命令文件将设置默认参数并调用VsDevCmd。bat脚本去设置指定的生成体系结构环境。典型安装可能包括以下命令文件:
  注意vcvarsall。bat文件和其他VisualStudio命令文件可能因计算机而异。不要使用另一台计算机中的文件替换已经丢失或损坏的vcvarsall。bat文件。需要重新运行VisualStudio安装程序来替换丢失的文件。vcvarsall。bat文件在不同的版本中也会有所不同。如果安装了当前版本VisualStudio的计算机上也安装了VisualStudio的早期版本,则不要在同一命令提示符窗口中运行不同版本的vcvarsall。bat或其他VisualStudio命令文件。
  vcvarsall。bat是Windows下的批处理命令,如下脚本代码所示(不同版本的VisualStudio会有所不同):ifnotVSCMDDEBUGGEQ3echooffREM:parseargssetVCVARSALLSTOREsetVCVARSALLWINSDKsetVCVARSALLPARSEERRORsetVCVARSALLTARGETARCHsetVCVARSALLHOSTARCHsetVCVARSALLVERREMParsecommandlinearguments。ThisimplementationdoesnotcareaboutREMargumentorder。ifVSCMDDEBUGGEQ1(echo〔DEBUG:nx0〕initwitharguments)setVCVARSALLPARSEERROR0setVCVARSALLARGSLISTcall:parseloopsetVCVARSALLARGSLISTifVSCMDDEBUGGEQ1(echo〔DEBUG:nx0〕Commandlineparsecompletedwithvalues:echo〔DEBUG:nx0〕VCVARSALLTARGETARCHVCVARSALLTARGETARCHecho〔DEBUG:nx0〕VCVARSALLHOSTARCHVCVARSALLHOSTARCHecho〔DEBUG:nx0〕VCVARSALLWINSDKVCVARSALLWINSDKecho〔DEBUG:nx0〕VCVARSALLSTOREVCVARSALLSTOREecho〔DEBUG:nx0〕VCVARSALLHELPVCVARSALLHELPecho〔DEBUG:nx0〕VCVARSALLPARSEERRORVCVARSALLPARSEERROR)ifVCVARSALLCLEANENVNEQgoto:callvsdevcmdifVCVARSALLPARSEERRORNEQ0goto:usageerrorifVCVARSALLHELPNEQgoto:usageREM:checkplatformREMThisscriptisinstalledto。。。VCAuxiliaryBuild。REMvsdevcmdisinstalledto。。。Common7Tools。ifnotexistdp0。。。。。。Common7Toolsvsdevcmd。batgotomissingREMAssembletheargumentstopasstovsdevcmd。batifVCVARSALLTARGETARCHgoto:usageerrorifVCVARSALLHOSTARCHgoto:usageerrorsetVCVARSALLVSDEVCMDARGSarchVCVARSALLTARGETARCHhostarchVCVARSALLHOSTARCHifVCVARSALLWINSDKNEQ(setVCVARSALLVSDEVCMDARGSVCVARSALLVSDEVCMDARGSwinsdkVCVARSALLWINSDK)ifVCVARSALLSTORENEQ(setVCVARSALLVSDEVCMDARGSVCVARSALLVSDEVCMDARGSappplatformUWP)ifVCVARSALLVERNEQ(setVCVARSALLVSDEVCMDARGSVCVARSALLVSDEVCMDARGSvcvarsverVCVARSALLVER)ifVCVARSALLSPECTRENEQ(setVCVARSALLVSDEVCMDARGSVCVARSALLVSDEVCMDARGSvcvarsspectrelibsVCVARSALLSPECTRE)goto:callvsdevcmdREMREMCallvsdevcmd。battosetupthecommandpromptenvironment:callvsdevcmdREMThistemporaryenvironmentvariableisusedtocontrolsettingofVCREMcommandpromptspecificenvironmentvariablesthatshouldnotbesetREMbytheVSDeveloperCommandprompt(specificallyvsdevcmdextvcvars。bat)。REMTheknowncasethiseffectsisthePlatformenvironmentvariable,whichREMwilloverrideplatformtargetfor。NETbuilds。setVSCMDVCVARSALLINIT1REMSpecialhandlingforthecleanenvargumentifVCVARSALLCLEANENVNEQ(calldp0。。。。。。Common7Toolsvsdevcmd。batcleanenvgoto:end)calldp0。。。。。。Common7Toolsvsdevcmd。batVCVARSALLVSDEVCMDARGSifERRORLEVEL0(REMPrintthetargetcommandpromptarchitecture。。。ifVCVARSALLHOSTARCHNEQVCVARSALLTARGETARCH(echo〔nx0〕Environmentinitializedfor:VCVARSALLHOSTARCHVCVARSALLTARGETARCH)else(echo〔nx0〕Environmentinitializedfor:VCVARSALLTARGETARCH))goto:end:parseloopforFtokens1,delimsain(VCVARSALLARGSLIST)do(ifVSCMDDEBUGGEQ2(echo〔DEBUG:nx0〕innerargument{a})call:parseargumentasetVCVARSALLARGSLISTbgoto:parseloop)exitB0:parseargumentREMcalledby:parseloopandexpectstheargumentstoeitherbe:REM1。asingleargumentin1REM2。anargumentpairfromthecommandlinespecifiedas12setlocalARGFOUNDREMArchitectureifI1x86(setVCVARSALLTARGETARCHx86setVCVARSALLHOSTARCHx86setlocalARGFOUND1)ifI1x86amd64(setVCVARSALLTARGETARCHx64setVCVARSALLHOSTARCHx86setlocalARGFOUND1)ifI1x86x64(setVCVARSALLTARGETARCHx64setVCVARSALLHOSTARCHx86setlocalARGFOUND1)ifI1x86arm(setVCVARSALLTARGETARCHarmsetVCVARSALLHOSTARCHx86setlocalARGFOUND1)ifI1x86arm64(setVCVARSALLTARGETARCHarm64setVCVARSALLHOSTARCHx86setlocalARGFOUND1)ifI1amd64(setVCVARSALLTARGETARCHx64setVCVARSALLHOSTARCHx64setlocalARGFOUND1)ifI1x64(setVCVARSALLTARGETARCHx64setVCVARSALLHOSTARCHx64setlocalARGFOUND1)ifI1amd64x86(setVCVARSALLTARGETARCHx86setVCVARSALLHOSTARCHx64setlocalARGFOUND1)ifI1x64x86(setVCVARSALLTARGETARCHx86setVCVARSALLHOSTARCHx64setlocalARGFOUND1)ifI1amd64arm(setVCVARSALLTARGETARCHarmsetVCVARSALLHOSTARCHx64setlocalARGFOUND1)ifI1x64arm(setVCVARSALLTARGETARCHarmsetVCVARSALLHOSTARCHx64setlocalARGFOUND1)ifI1amd64arm64(setVCVARSALLTARGETARCHarm64setVCVARSALLHOSTARCHx64setlocalARGFOUND1)ifI1x64arm64(setVCVARSALLTARGETARCHarm64setVCVARSALLHOSTARCHx64setlocalARGFOUND1)ifI1vcvarsver(setVCVARSALLVER2setlocalARGFOUND1)ifI1vcvarsver(setVCVARSALLVER2setlocalARGFOUND1)ifI1vcvarsver(setvcvarsallver2setlocalARGFOUND1)ifI1vcvarsspectrelibs(setVCVARSALLSPECTRE2setlocalARGFOUND1)ifI1vcvarsspectrelibs(setVCVARSALLSPECTRE2setlocalARGFOUND1)ifI1vcvarsspectrelibs(setvcvarsallSPECTRE2setlocalARGFOUND1)ifI1help(setVCVARSALLHELP1setlocalARGFOUND1)ifI1help(setVCVARSALLHELP1setlocalARGFOUND1)ifI1help(setVCVARSALLHELP1setlocalARGFOUND1)ifI1?(setVCVARSALLHELP1setlocalARGFOUND1)ifI1?(setVCVARSALLHELP1setlocalARGFOUND1)REMcleanenvREMMostlyusedforinternaltestingtorestorethestateofREMthecommandlineenvironmenttoitsstatepriortovcvarsall。batREMbeingexecuted。ifI1cleanenv(setVCVARSALLCLEANENVcleanenvsetlocalARGFOUND1)ifI1cleanenv(setVCVARSALLCLEANENVcleanenvsetlocalARGFOUND1)REMWindowsSDKVersionifI18。1(setVCVARSALLWINSDK8。1setlocalARGFOUND1)settemp11ifItemp1:0,310。(setVCVARSALLWINSDK1setlocalARGFOUND1)settemp1REMStoreUWPifI1store(setVCVARSALLSTOREappplatformUWPsetlocalARGFOUND1)ifI1uwp(setVCVARSALLSTOREappplatformUWPsetlocalARGFOUND1)iflocalARGFOUNDNEQ1(setAVCVARSALLPARSEERRORVCVARSALLPARSEERROR1if2(echo〔ERROR:nx0〕Invalidargumentfound:1)else(echo〔ERROR:nx0〕Invalidargumentfound:12))setlocalARGFOUNDexitB0:usageerrorecho〔ERROR:nx0〕Errorinscriptusage。Thecorrectusageis:goto:usage:usageechoSyntax:echonx0〔arch〕〔platformtype〕〔winsdkversion〕〔vcvarsvervcversion〕〔vcvarsspectrelibsspectremode〕echowhere:echo〔arch〕:x86amd64x86amd64x86armx86arm64amd64x86amd64armamd64arm64echo〔platformtype〕:{empty}storeuwpecho〔winsdkversion〕:fullWindows10SDKnumber(e。g。10。0。10240。0)or8。1tousetheWindows8。1SDK。echo〔vcversion〕:{none}forlatestinstalledVCcompilertoolsetecho14。0forVC2015CompilerToolsetecho14。xxforthelatest14。xx。yyyyytoolsetinstalled(e。g。14。11)echo14。xx。yyyyyforaspecificfullversionnumber(e。g。14。11。25503)echo〔spectremode〕:{none}forlibrarieswithoutspectremitigationsechospectreforlibrarieswithspectremitigationsecho:echoThestoreparametersetsenvironmentvariablestosupportUniversalWindowsPlatformapplicationechodevelopmentandisanaliasforuwp。echo:echoForexample:echonx0x86amd64echonx0x86amd6410。0。10240。0echonx0x86armuwp10。0。10240。0echonx0x86armonecore10。0。10240。0vcvarsver14。0echonx0x648。1echonx0x64store8。1echo:echoPleasemakesureeitherVisualStudioorCBuildSKUisinstalled。goto:end:missingechoThespecifiedconfigurationtypeismissing。Thetoolsfortheechoconfigurationmightnotbeinstalled。goto:end:endsetVCVARSALLTARGETARCHsetVCVARSALLHOSTARCHsetVCVARSALLSTOREsetVCVARSALLWINSDKsetVCVARSALLPARSEERRORsetVCVARSALLCLEANENVsetVSCMDVCVARSALLINITsetVCVARSALLVSDEVCMDARGSsetVCVARSALLHELPsetVCVARSALLVERsetVCVARSALLSPECTRE五、QtCreator设置MSVC编译套件分析
  QtCreator对MSVC编译套件的识别,是通过VisualStudio的命令文件vcvarsall。bat来实现的。例如下图:
  且每一种编译套件都会使用到该命令文件,然后将对应的参数传递给该批处理文件!
  (注:小生安装了多个版本的VisualStudio,所以在QtCreator自动检测MSVC编译套件时识别到多种不同类型的编译套件)
  上图中,每一项后面的括号中的内容,则代表了该种编译套件的运行宿主机和生成程序的目标平台。具体含义参见本文第二小节内容啦。例如:如果我们的平台是x8632位宿主机,生成的代码同样需要运行在x8632位的目标计算机上,故需要选择x86的编译套件。其他编译套件以此类推!
  也可以在VisualStudio中搭建Qt的开发环境,但是小生还是比较喜欢QtCreator,工具而已,喜欢就好!

唐伯虎点秋香有哪些细思极恐的地方?1。鸡翅膀。古代没有工业化养鸡,所以不存在去菜市能买到数只鸡翅膀这么一说。卖分割鸡也是20世纪初肯记麦记开始创立才倒逼出来的配套,在这之前,尤其是古代,要买鸡就只能是全鸡。拿回家加对于长期生活不能自理的人,真的是好死不如赖活着吗?刚刚遇到一个87岁的老人在小区里走步,我问她还自己做饭吗,她说当然是自己做饭,因为是自己一个人居住,里里外外的都是自己一个人打理,星期天儿子回来可以帮她拖拖地。她说一个居住惯了,如想买一辆8万左右的家用代步车,不知道该买哪个?推荐下?8万左右的话,我只能给你推荐这个价位销量最好的车型!宝骏的510顶配只要八万多!应该可以满足你的日常需求!仅供参考感谢邀请!想买一辆8万左右的家用代步车,不知道该买哪个?请求推荐。新世界杯伊藤美诚为什么宣布正式退赛?在世界乒坛三大赛中,世界杯冠军含金量排第三,为了全力以赴夺取世乒赛金牌,一心不可二用,伊藤美诚集中精力去拼世乒赛!她想闭关修炼吧!以她目前的状态参加世界杯,遇到中国球员也是很难赢球被称为乒乓球大满贯赛事之一,乒乓球世界杯和公开赛相比,哪个含金量更高?直接上答案乒乓球世界杯的冠军含金量肯定比公开赛的要高!世界杯号称世界三大赛事(世界杯世锦赛和奥运会)之一,只要拿下冠军即可荣获世界冠军头衔。公开赛冠军你就是全拿了也没用,跟世界冠军民生银行,交通银行,平安银行哪个好?从三家银行两个方面进行比较,我认为从银行业角度来看,肯定是交通银行好,从股票二级市场角度来看,肯定是平安银行好。具体理由如下首年说说为什么从银行行业来分析,肯定是交通银行好呢?最简助听器要去哪里配呀?医院可以吗?听力下降的人需要佩戴助听器,这个必须去医院检查听力级别,才能准确的佩戴助听器。目前各地县级以上城市基本都有助听器专卖店,专卖店就可以检验听力。谢邀。医院和专业的听力中心都可以配的,怀孕该去医院还是妇幼保健院?为什么?首先澄清一个概念,妇幼保健院也是医院,专门为女性和儿童服务的正规医院,里面的医生也一样有执业资质。各地有不同的妇幼保健院,从省妇幼保健院到区镇妇幼保健院,各级别妇幼保健院水平各有高现在的社保医保都已经开始缴费了,大家是不是感觉压力山大啊?感谢邀请,感谢楼主的提问。楼主您好,现在的社保和医保已经开始缴费了,大家是不是感觉到压力山大呢?其实对于缴纳社保的人群主要还是针对于灵活就业的人群,它的压力可能会比较大一些,因为本有人说顺产的孩子聪明,是真的吗?孕妇应该选择顺产还是剖腹产?分娩方式有很多种,但是最常见的是自然分娩,此外还有剖宫产,无痛分娩水中分娩等。最理想的分娩方式当然是自然分娩了,也就是平时我们所说的顺产。这样分娩是怎样胎儿经过妈妈的阴道自然娩出的15岁,不想上学,整天黑白颠倒看手机打游戏,是抑郁吗?打也打了骂也骂了,可就是没办法,苦口婆心也没用!这孩子就是铁了心地跟你做对,有时候甚至你会想着是不是来讨债的啊?其实这是你们家长的教育方式出了大问题。可不要再把责任往孩子身上推了,
耻辱惨败!波特154,伊森115,格林太尴尬,火箭新基石诞生北京时间12月20日,NBA常规赛火箭主场迎战马刺,赛前,火箭排名西部倒数第1,而马刺则是倒数第2,但两队战绩相同,上一次交手,火箭就曾输给了马刺,这让我们不得不怀疑,火箭有故意输CCTV5直播广东浙江二番战!吴前缺席杜锋复仇良机或送其赛季首败广东队渐入佳境上场对阵四川队,广东队继续保持良好的势头,徐杰14分11助攻,胡明轩13分5助攻,汉密尔顿12分6篮板,王薪凯三分球7中5得到21分,布鲁克斯23分,任骏飞10分7篮火箭双软拍门,毫无悬念输给马刺三分投不进,罚球也罚不进,不知道火箭最近是怎么了。火箭球迷不在乎输赢,但我们也想看有质量有内容的比赛。看看人家马刺的整体性稳定性,球员的基本功。明明火箭是天赋更好的球队,怎么就不如篮网活塞裁判报告出炉!欧文三分被犯规漏吹本有望与KD同砍40分北京时间12月20日,NBA官方公布了篮网vs活塞的最后两分钟裁判报告。报告显示,在这场比赛的最后两分钟,只有一次漏判。裁判漏吹了欧文的三分被犯规,他应该获得三次罚球机会,本有望与中国足协杯决出八强新华社北京12月19日电2022中国足协杯第三轮比赛19日战罢,八强全部产生。2022赛季中乙联赛冠军济南兴洲是八强中唯一一支非中超球队,成为足协杯全民足球理念的注脚。第三轮原计划从里到外思考世界想象一个由肠道生殖器和咳嗽连接的世界大号ife实际上只是一系列电子管。你通过输卵管,从阴道出来,吮吸到一些乳管,并在那里停留多年,inshallah。当你长大后,你的嘴孔到处都是,大帝28分11篮板,哈登准三双,76人加时104101胜猛龙北京时间12月20日上午8时,费城76人坐镇主场迎战到访的猛龙,当前76人是4连胜在手,而猛龙则遭遇了5连败且本场是背靠背作战,最终以首节猛龙这边的西亚卡姆先拔得头筹取得全场第一分111月湖南社会消费品零售总额增长2。6来源中国经济网中国经济网12月21日讯据湖南省统计局消息,111月,湖南省实现社会消费品零售总额17260。85亿元,同比增长2。6。11月份,湖南省实现社会消费品零售总额1665中国代购抢光外国退烧药,当地人无药可吃丢脸丢到国外了今天你买到药了吗?买不到药的话题已经霸屏了好几天。许多药店门外都贴出告示,没有退烧药,没有感冒药,没有体温计,没有酒精。然后网上说有代购就盯上了海外的退烧药。把美国加拿大日本澳大利在场净输25分!阿努诺比1343,猛龙3分憾负76人北京时间2022年12月20日讯,76人以104101,3分分差战胜对手猛龙。阿努诺比本场比赛首发出战40分钟,投篮10投4中,命中率为40。0,三分球7中3,三分球命中率为42。恭喜汉密尔顿!合同转正,留在广东宏远,帮助杜锋冲击总冠军埃利斯要回家了,我们一起感谢一下,埃利斯来到球队以后,带来很多帮助,虽然时间不长,但是我觉得大家各种感觉和感情,希望埃利斯接下来有机会再来国内,再到球队来,一直都欢迎他,我们感谢一
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网