91视频专区

《《漂亮的保姆》完整版》中文在线观看-枪战片 - 星辰影院《漂亮的保姆3中文版完整版》手机高清在线观看-飘雪...

DTN高级市场分析师Troy Vincent表示,油价和股市在美联储宣布后的几分钟内上涨,因为央行“围绕未来加息的语言软化,这支持了风险资产的前景”。

2024年12月26日,首发2024-06-29 17:30·唐文采飞扬

《《漂亮的保姆》完整版》中文在线观看-枪战片 - 星辰影院《漂亮的保姆3中文版完整版》手机高清在线观看-飘雪...

然而在此之前中国市场的增速已经连续两年超过100%2020年中国市场营收为66.62亿美元2019年则为29.79亿美元

退休后的老年人,都逐渐开始感悟余生拼的不是能领多少养老金,而是得有一个好的身体,越来越发现锻炼身体也是需要适可而止的,不能“随大流”而不顾及自己的身体状况。对于础滨具体参与的环节,陈坤透露,影片并未使用文生视频技术,而是文生图、图生视频。因为影视剧制作所要求的人物一致性、场景一致性、风格一致性问题,目前的文生视频技术尚不能做到。具体来讲,直接由文字进行视频的生成,其中的多种可能性迭加,控制性便会变差。陈坤也尝试过其他厂商的文生视频产物,但最终结果均不尽如人意。

CMakegoujianMakefileshendujiexi:congdicengyuanlidaofuzaxiangmu2023-06-10 21:24·linuxjishuzhanyi、CMakegoujianhoudexiangmujiegoujiexi(Analysis of the Project Structure After CMake Build)1.1 CMakegoujianhoudemulujiegou(Directory Structure After CMake Build)CMakegoujianwanchenghou,huizaixiangmudegenmuluxiashengchengyigemingweibuilddemulu。zhegemulushiCMakegoujianguochengzhongsuoyouzhongjianwenjianhezuizhongshengchengdemubiaowenjiandecunfangdi。xiamianwomenjiangxiangxijiexizhegemuludejiegou。shouxian,womenlaikanyixiabuildmuludeyijizimulu:CMakeFiles:zhegemuluzhongcunfangdeshiCMakezaigoujianguochengzhongshengchengdelinshiwenjian,baokuobianyiqijianchadejieguo、Findmokuai(Find Modules)chazhaodejieguodeng。zhexiewenjianzhuyaoyongyuCMakezishendexuqiu,yibanqingkuangxia,womenbuxuyaoguanzhuzhegemuludeneirong。Testing:ruguonidexiangmuzhongbaohanliaoCTestceshi,namezhegemulujianghuibeishengcheng。tabaohanliaosuoyouCTestceshidejieguo。bin:zhegemuluzhongbaohanliaosuoyoudekezhixingwenjian(Executable Files)。ruguonideCMakexiangmuzhongbaohanliaoduogekezhixingwenjian,nametamenduhuibeifangzaizhegemuluzhong。lib:zhegemuluzhongbaohanliaosuoyoudekuwenjian(Library Files)。wulunshijingtaiku(Static Libraries)huanshidongtaiku(Dynamic Libraries),duhuibeifangzaizhegemuluzhong。jiexialai,womenzaishenrudaoCMakeFilesmuluzhong,kanyixiatadeerjizimulu:project.dir:zhegemuluzhongbaohanliaoxiangmugoujianguochengzhongdelinshiwenjian,ru.owenjianhe.dwenjian。zhexiewenjianshibianyiqizaibianyiyuandaimashishengchengde。CMakeOutput.log:zhegewenjianjiluliaoCMakezaipeizhiguochengzhongdeshuchuxinxi,baokuobianyiqijianchadejieguo、Findmokuaichazhaodejieguodeng。CMakeError.log:zhegewenjianjiluliaoCMakezaipeizhiguochengzhongyudaodecuowuxinxi。yishangjiushiCMakegoujianhoudemulujiegoudejibenqingkuang。zaishijidexiangmuzhong,kenenghuigenjuxiangmudejutixuqiu,shengchenggengduodezimuluhewenjian。danshi,zhexiejibendemuluhewenjianshinizairenheyigeshiyongCMakegoujiandexiangmuzhongdunengkandaode。1.2 goujianshengchengdewenjianleixingjiqizuoyong(Types of Files Generated by the Build and Their Functions)CMakegoujianguochengzhonghuishengchengduozhongleixingdewenjian,meizhongwenjianduyouqitedingdezuoyong。xiamianwomenjiangxiangxijiexizhexiewenjiandeleixinghezuoyong。CMakeFilesmulu:zhegemuluzhongcunfangdeshiCMakezaigoujianguochengzhongshengchengdelinshiwenjian,baokuobianyiqijianchadejieguo、Findmokuai(Find Modules)chazhaodejieguodeng。zhexiewenjianzhuyaoyongyuCMakezishendexuqiu,yibanqingkuangxia,womenbuxuyaoguanzhuzhegemuludeneirong。project.dirmulu:zhegemuluzhongbaohanliaoxiangmugoujianguochengzhongdelinshiwenjian,ru.owenjianhe.dwenjian。zhexiewenjianshibianyiqizaibianyiyuandaimashishengchengde。CMakeOutput.logwenjian:zhegewenjianjiluliaoCMakezaipeizhiguochengzhongdeshuchuxinxi,baokuobianyiqijianchadejieguo、Findmokuaichazhaodejieguodeng。CMakeError.logwenjian:zhegewenjianjiluliaoCMakezaipeizhiguochengzhongyudaodecuowuxinxi。Testingmulu:ruguonidexiangmuzhongbaohanliaoCTestceshi,namezhegemulujianghuibeishengcheng。tabaohanliaosuoyouCTestceshidejieguo。binmulu:zhegemuluzhongbaohanliaosuoyoudekezhixingwenjian(Executable Files)。ruguonideCMakexiangmuzhongbaohanliaoduogekezhixingwenjian,nametamenduhuibeifangzaizhegemuluzhong。libmulu:zhegemuluzhongbaohanliaosuoyoudekuwenjian(Library Files)。wulunshijingtaiku(Static Libraries)huanshidongtaiku(Dynamic Libraries),duhuibeifangzaizhegemuluzhong。yishangjiushiCMakegoujianguochengzhongshengchengdezhuyaowenjianleixingjiqizuoyong。lijiezhexiewenjiandezuoyong,keyibangzhuwomengenghaodilijieCMakedegoujianguocheng。1.3 CMakeLists.txtyushengchengdeMakefiledeguanxi(The Relationship Between CMakeLists.txt and the Generated Makefile)zaiCMakegoujianxitongzhong,CMakeLists.txtwenjianheshengchengdeMakefilewenjianzhijiancunzaizhuomiqiedeguanxi。xiamianwomenjiangxiangxijiexizhezhongguanxi。CMakeLists.txtshiCMakegoujianxitongdehexinwenjian,tadingyiliaoxiangmudegoujianguizeheyilaiguanxi。zaizhixingCMakeminglingshi,CMakehuiduquCMakeLists.txtwenjian,jiexiqizhongdegoujianguizeheyilaiguanxi,ranhoushengchengxiangyingdeMakefilewenjian。MakefilewenjianshiyouCMakegenjuCMakeLists.txtwenjianshengchengde,tashiMakegoujiangongjukeyizhijieduqudegoujianjiaoben。Makefilewenjianzhongbaohanliaojutidebianyiminglinghelianjiemingling,yijiyuanwenjianhemubiaowenjianzhijiandeyilaiguanxi。zaiyigeCMakexiangmuzhong,tongchanghuiyouduogeCMakeLists.txtwenjian,meigemuluxiadukeyiyouyigeCMakeLists.txtwenjian。zhexieCMakeLists.txtwenjianzhongdingyidegoujianguizeheyilaiguanxi,huibeiCMakehebingdaoyiqi,shengchengyigehuoduogeMakefilewenjian。ruguoyigeCMakexiangmuzhongzhiyouyigeCMakeLists.txtwenjian,nameCMakehuishengchengyigeMakefilewenjian。ruguoyigeCMakexiangmuzhongyouduogeCMakeLists.txtwenjian,nameCMakehuizaimeigeCMakeLists.txtwenjiansuozaidemuluxiashengchengyigeMakefilewenjian。zhexieMakefilewenjianzhong,dingcengmuluxiadeMakefilewenjianshizhuMakefilewenjian,tahuidiaoyongqitamuluxiadeMakefilewenjian。zongdelaishuo,CMakeLists.txtwenjianheshengchengdeMakefilewenjianzhijiandeguanxishi:CMakeLists.txtwenjiandingyiliaoxiangmudegoujianguizeheyilaiguanxi,CMakegenjuCMakeLists.txtwenjianshengchengMakefilewenjian,ranhouMakegenjuMakefilewenjianzhixingjutidegoujianrenwu。xiangguanshipintuijiancongchengxubianyidaozhangwo cmake xiangmugoujiangongju2023jiuyexingqingyipiancandan,ruhenadaozijilixiangdeoffer?2023nianzuixinjishutupu,c++houduande8gejishuweidu,zhulinikuaisuchengweidaniuxuyaoC/C++ Linuxfuwuqijiagoushixuexiziliaojiaqun812855908huoqu(ziliaobaokuoC/C++,Linux,golangjishu,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,liumeiti,CDN,P2P,K8S,Docker,TCP/IP,xiecheng,DPDK,ffmpegdeng),mianfeifenxianger、shenrulijieCMakeshengchengdeMakefile2.1 MakefiledejibenjiegouheyuanliMakefileshiGNU makegongjudepeizhiwenjian,tadingyiliaoyizuguizelaizhidingnaxiewenjianxuyaobeigengxin,yijiruhegengxinzhexiewenjian。zaiC++xiangmuzhong,Makefiletongchangyongyubianyiyuandaimabingshengchengkezhixingwenjian。Makefiledejibenjiegoubaokuosangebufen:mubiao(Target)、yilai(Dependencies)hemingling(Commands)。mubiao(Target):zheshixuyaoshengchengdewenjianming。takeyishiyigeduixiangwenjian(Object File),yekeyishiyigekezhixingwenjian(Executable File)。yilai(Dependencies):zhexieshimubiaowenjianxuyaodeyuanwenjian。ruguorenheyigeyilaiwenjianbimubiaowenjiangengxin,namemubiaowenjianjiuxuyaobeizhongxinshengcheng。mingling(Commands):zhexieshishengchengmubiaowenjiansuoxuyaozhixingdeshellmingling。zhexieminglingbixuyiTabzifukaishi。xiamianshiyigejiandandeMakefileshili:target: dependencies commandszaiCMakezhong,CMakeLists.txtwenjianzhongdezhilinghuibeizhuanhuanweiMakefilezhongdemubiao、yilaihemingling。liru,add_executablezhilinghuishengchengyigemubiao,target_link_librarieszhilinghuishengchengyilai,ershijidebianyihelianjieminglingzeyouCMakezidongshengcheng。lijieMakefiledejibenjiegouheyuanli,duiyushenrulijieCMakeshengchengdeMakefileyouzhuozhongyaodezuoyong。zaixiayijiezhong,womenjiangjinyibutantaoduogeCMakeLists.txtshengchengdeMakefiledejiexi。2.2 duogeCMakeLists.txtshengchengdeMakefilejiexizaidaxingdeC++xiangmuzhong,tongchanghuiyouduogeCMakeLists.txtwenjian,meigemuluxiaduyouyige。zhezhongjiegouyouzhuyubaochixiangmudemokuaihua,shidemeigebufenkeyidulidibeigoujianheceshi。dangyunxingCMakeminglingshi,tahuishouxianchazhaogenmuluxiadeCMakeLists.txtwenjian,ranhoudiguidichulimeigezimuluzhongdeCMakeLists.txtwenjian。meigeCMakeLists.txtwenjianduhuishengchengyigeduiyingdeMakefile。zaizhegeguochengzhong,CMakehuichuliCMakeLists.txtwenjianzhongdezhiling,ruadd_executable、add_library、target_link_librariesdeng,bingjiangzhexiezhilingzhuanhuanweiMakefilezhongdemubiao、yilaihemingling。liru,ruguowomenyouruxiademulujiegou:project/├── CMakeLists.txt├── main.cpp└── module/ ├── CMakeLists.txt └── module.cppzaigenmuludeCMakeLists.txtwenjianzhong,womenkenenghuiyouruxiadezhiling:add_executable(main main.cpp)add_subdirectory(module)target_link_libraries(main module)zaimodulemuludeCMakeLists.txtwenjianzhong,womenkenenghuiyouruxiadezhiling:add_library(module module.cpp)zaizhegelizizhong,CMakehuishengchenglianggeMakefile,yigezaiprojectmulu,yigezaiproject/modulemulu。zaiprojectmuludeMakefilezhong,huiyouyigemingweimaindemubiao,tayilaiyumain.cpphemodulemuludeMakefilezhongshengchengdeku。zaiproject/modulemuludeMakefilezhong,huiyouyigemingweimoduledemubiao,tayilaiyumodule.cpp。tongguozhezhongfangshi,CMakeshidemeigezimulukeyidulidibeigoujian,tongshiyebaozhengliaozhenggexiangmudegoujianshunxu。2.3 CMakeyuMakefilededuiyingguanxiCMakeshiyigekuapingtaidegoujianxitong,tadezhuyaorenwushigenjuyonghudexuqiushengchengshidangdeMakefilewenjian。CMaketongguoduquCMakeLists.txtwenjianlailiaojieyonghudexuqiu,ranhoushengchengduiyingdeMakefilewenjian。zaiCMakeyuMakefilezhijian,cunzaiyizhongmingquededuiyingguanxi。CMakeLists.txtwenjianzhongdemeiyitiaozhiling,duhuizaishengchengdeMakefilewenjianzhongyouyigeduiyingdebiaoxian。xiamianwomenlaikanyixiechangjiandeCMakezhiling,yijitamenzaiMakefilezhongdeduiyingguanxi:add_executable:zhegeCMakezhilingyongyudingyiyigekezhixingwenjiandemubiao。zaishengchengdeMakefilezhong,zhegemubiaohuibeidingyiweiyigeguize,guizedemubiaoshikezhixingwenjian,yilaixiangshiyuanwenjian,minglingshibianyimingling。add_library:zhegeCMakezhilingyongyudingyiyigekuwenjiandemubiao。zaishengchengdeMakefilezhong,zhegemubiaoyehuibeidingyiweiyigeguize,guizedemubiaoshikuwenjian,yilaixiangshiyuanwenjian,minglingshibianyimingling。target_link_libraries:zhegeCMakezhilingyongyudingyimubiaodelianjieku。zaishengchengdeMakefilezhong,zhegezhilinghuiyingxiangdaolianjiemingling,lianjieminglinghuibaohanduiyingdekuwenjian。add_subdirectory:zhegeCMakezhilingyongyutianjiazimulu。zaishengchengdeMakefilezhong,zhegezhilinghuidaozhishengchengyigexindeMakefilewenjianzaiduiyingdezimuluzhong。tongguolijieCMakeyuMakefilededuiyingguanxi,womenkeyigenghaodilijieCMakedegongzuoyuanli,yijiruhebianxieyouxiaodeCMakeLists.txtwenjian。zaixiayizhangjiezhong,womenjiangjinyibutantaoCMakegoujianguochengdedicengyuanli。san、CMakegoujianguochengdedicengyuanli(Underlying Principles of the CMake Build Process)3.1 CMakegoujianguochengdejibenliucheng(Basic Flow of the CMake Build Process)CMakedegoujianguochengkeyifenweisangezhuyaobuzhou:peizhi(Configuration)、shengcheng(Generation)hegoujian(Build)。xiamianwomenjiangxiangxijieximeigebuzhou。1、peizhi(Configuration)peizhijieduanshiCMakejiexiCMakeLists.txtwenjiandeguocheng。zaizhegejieduan,CMakehuiduquCMakeLists.txtwenjian,bingzhixingqizhongdemingling。zhexieminglingzhuyaoyongyujianchaxitonghuanjing(lirubianyiqi、kudeng),shezhigoujianxuanxiang,yijidingyigoujianmubiao(liruku、kezhixingwenjiandeng)。CMakeLists.txtwenjianshiCMakedehexin,tadingyiliaoxiangmudegoujianguizeheyilaiguanxi。meigemulu(baokuozimulu)zhongdukeyiyouyigeCMakeLists.txtwenjian。zaipeizhijieduan,CMakehuicongdingcengmuludeCMakeLists.txtwenjiankaishi,diguidichulimeigezimuluzhongdeCMakeLists.txtwenjian。2、shengcheng(Generation)shengchengjieduanshiCMakegenjupeizhijieduandejieguo,shengchengshijidegoujianwenjiandeguocheng。zhexiegoujianwenjiantongchangshiMakefilewenjian,danyekeyishiqitaleixingdegoujianwenjian,liruNinjagoujianwenjian,huozheVisual Studioxiangmuwenjian,zhequjueyunixuanzedegoujiangongju。zaishengchengjieduan,CMakehuijiangCMakeLists.txtwenjianzhongdingyidegoujianguizeheyilaiguanxi,zhuanhuanweigoujiangongjukeyilijiedexingshi。liru,ruguonixuanzedegoujiangongjushiMake,CMakehuishengchengMakefilewenjian。meigemulu(baokuozimulu)zhongduhuishengchengyigeMakefilewenjian。3、goujian(Build)goujianjieduanshishiyonggoujiangongju(liruMake、NinjahuoVisual Studio)genjushengchengdegoujianwenjian,bianyiyuandaimabinglianjieshengchengmubiaowenjiandeguocheng。zaigoujianjieduan,goujiangongjuhuiduqushengchengdegoujianwenjian,anzhaoqizhongdingyideguizeheyilaiguanxi,zhixingshijidebianyihelianjiecaozuo。goujiangongjuhuizidongchuliyilaiguanxi,quebaozaibianyihelianjieyigemubiaowenjianzhiqian,qisuoyouyilaidemubiaowenjianduyijingbeizhengquedibianyihelianjie。yishangjiushiCMakegoujianguochengdejibenliucheng。zailijieliaozhegeliuchengzhihou,womenjiukeyigengshenruditantaoCMakeruheshengchengMakefile,yijiCMakegoujianguochengzhongdeguanjianbuzhouliao。3.2 CMakeruheshengchengMakefile(How CMake Generates Makefile)CMakeshengchengMakefiledeguochengshizaiqishengchengjieduanwanchengde。zhegeguochengzhuyaoshejidaoCMakedehexinzujian——shengchengqi(Generator)。xiamianwomenjiangxiangxijiexizhegeguocheng。1、xuanzeshengchengqi(Selecting a Generator)zaiCMakedeshengchengjieduankaishishi,shouxianxuyaoxuanzeyigeshengchengqi。shengchengqishiCMakedeyigehexinzujian,tafuzejiangCMakeLists.txtwenjianzhongdegoujianguizeheyilaiguanxi,zhuanhuanweitedinggoujiangongjukeyilijiedexingshi。CMakezhichiduozhongshengchengqi,keyishengchengMakefilewenjian,yekeyishengchengNinjagoujianwenjian,huozheVisual Studioxiangmuwenjiandeng。xuanzeshengchengqidefangshitongchangshizaiyunxingCMakeminglingshi,tongguo-Gxuanxiangzhiding。liru,ruguonixiangshengchengUnixfenggedeMakefilewenjian,keyishiyong"Unix Makefiles"shengchengqi,minglingruxia:cmake -G "Unix Makefiles"ruguomeiyouzhidingshengchengqi,CMakehuixuanzeyigemorendeshengchengqi,zhegemorendeshengchengqitongchangshigenjunidexitonghuanjingzidongxuanzede。2、shengchengMakefilexuanzehaoshengchengqizhihou,CMakejiuhuikaishishengchengMakefilewenjian。zaizhegeguochengzhong,CMakehuibianlixiangmuzhongdemeigemulu(baokuozimulu),duimeigemuluzhongdeCMakeLists.txtwenjianjinxingchuli。duiyumeigeCMakeLists.txtwenjian,CMakehuijiexiqizhongdemingling,genjuzhexieminglingdingyidegoujianguizeheyilaiguanxi,shengchengduiyingdeMakefilewenjian。meigeCMakeLists.txtwenjianduhuishengchengyigeMakefilewenjian,zhegeMakefilewenjianzhongbaohanliaobianyihelianjiegaimuluzhongdemubiaowenjiansuoxuyaodeguizehemingling。zaishengchengMakefilewenjianshi,CMakehuizidongchulimubiaowenjianzhijiandeyilaiguanxi。ruguoyigemubiaowenjianyilaiyuqitamubiaowenjian,CMakehuizaishengchengdeMakefilewenjianzhong,weizhegemubiaowenjiantianjiaxiangyingdeyilaiguize。yishangjiushiCMakeruheshengchengMakefiledeguocheng。lijieliaozhegeguocheng,womenjiukeyigenghaodilijieCMakegoujianguochengzhongdeguanjianbuzhou,yijiCMakeyuMakefilezhijiandeguanxiliao。3.3 CMakegoujianguochengzhongdeguanjianbuzhou(Key Steps in the CMake Build Process)CMakegoujianguochengzhongdeguanjianbuzhouzhuyaobaokuoyixiajigefangmian:1、jiexiCMakeLists.txtwenjian(Parsing CMakeLists.txt Files)zheshiCMakegoujianguochengdediyibu,yeshizuiguanjiandeyibu。CMakeLists.txtwenjianshiCMakedehexin,tadingyiliaoxiangmudegoujianguizeheyilaiguanxi。CMakexuyaojiexizhegewenjian,yihuoqugoujianxiangmusuoxudesuoyouxinxi。2、jianchaxitonghuanjing(Checking System Environment)zaiCMakeLists.txtwenjianzhong,tongchanghuibaohanyixiejianchaxitonghuanjingdemingling,lirujianchabianyiqi、kudeng。zhexieminglingzaiCMakegoujianguochengzhonghuibeizhixing,yiquebaoxitonghuanjingmanzuxiangmudegoujianxuqiu。3、shengchenggoujianwenjian(Generating Build Files)CMakedezhuyaorenwushishengchenggoujianwenjian,zhexiegoujianwenjiantongchangshiMakefilewenjian,danyekeyishiqitaleixingdegoujianwenjian,liruNinjagoujianwenjian,huozheVisual Studioxiangmuwenjian,zhequjueyunixuanzedegoujiangongju。shengchenggoujianwenjiandeguochengshiCMakegoujianguochengzhongdeyigeguanjianbuzhou。4、zhixinggoujianmingling(Executing Build Commands)zaishengchengliaogoujianwenjianzhihou,jiukeyikaishizhixinggoujianminglingliao。zhexiegoujianminglingtongchangshiyougoujiangongju(liruMake、NinjahuoVisual Studio)zhixingde。goujiangongjuhuigenjugoujianwenjianzhongdingyideguizehemingling,bianyiyuandaimabinglianjieshengchengmubiaowenjian。yishangjiushiCMakegoujianguochengzhongdeguanjianbuzhou。lijieliaozhexiebuzhou,womenjiukeyigenghaodilijieCMakedegongzuoyuanli,yijiruheshiyongCMakejinxingxiangmugoujianliao。si、CMakezaifuzaxiangmuzhongdeyingyong(Application of CMake in Complex Projects)4.1 fuzaxiangmuzhongdeCMakegoujiancelue(CMake Build Strategy in Complex Projects)zaifuzadexiangmuzhong,CMakedegoujianceluexuyaogengjiajingxihezhouquan。womenxuyaokaolvdaoxiangmudemokuaihua,yilaiguanxi,yijikenengcunzaidepingtaichayi。yixiashiyixiezaifuzaxiangmuzhongshiyongCMakedeceluehejianyi。4.1.1 mokuaihuadeCMakeLists.txt(Modularized CMakeLists.txt)zaidaxingxiangmuzhong,womentongchanghuikandaoxiangmubeihuafenweiduogemokuaihuozixiangmu,meigemokuaiduyouzijideyuandaimaheyilai。zhezhongqingkuangxia,womenkeyiweimeigemokuaichuangjianyigeCMakeLists.txtwenjian,zheyangkeyishigoujianguochenggengjiaqingxi,yefangbianwomenguanlimeigemokuaidegoujianguize。liru,womenkeyizaimeigemokuaidemuluxiachuangjianyigeCMakeLists.txtwenjian,ranhouzaixiangmudedingjimuluxiadeCMakeLists.txtwenjianzhongshiyongadd_subdirectory()minglinglaitianjiazhexiemokuai。4.1.2 guanliyilaiguanxi(Managing Dependencies)zaifuzadexiangmuzhong,butongdemokuaikenenghuiyougezhongyilaiguanxi。CMaketigongliaoyixieminglinglaibangzhuwomenguanlizhexieyilaiguanxi,lirutarget_link_libraries()minglingkeyiyonglaizhidingyigemubiaoxuyaolianjiedeku。zaichuliyilaiguanxishi,womenxuyaozhuyideyigezhongyaoyuanzeshi:jinliangrangyilaiguanximingquehezhiguan。zheyiweizhuo,ruguoyigemokuaiAyilaiyumokuaiB,namezaimokuaiAdeCMakeLists.txtwenjianzhong,womenyinggaimingquedizhichuzhegeyilaiguanxi。4.1.3 chulipingtaichayi(Handling Platform Differences)zaikuapingtaidexiangmuzhong,womenkenengxuyaochulibutongpingtaidechayi。CMaketigongliaoyixiebianliangheminglinglaibangzhuwomenchulizhexiechayi,liruCMAKE_SYSTEM_NAMEbianliangkeyiyonglaijiancedangqiandecaozuoxitong,if()minglingkeyiyonglaigenjubutongdetiaojianzhixingbutongdemingling。zaichulipingtaichayishi,womenyinggaijinliangbimianyingbianmatedingpingtaidexinxi。xiangfan,womenyinggaijinkenengdishiyongCMaketigongdebianlianghemingling,zheyangkeyishiwomendeCMakeLists.txtwenjiangengjiatongyonghekeweihu。yishangjiushizaifuzaxiangmuzhongshiyongCMakedeyixieceluehejianyi。zaishijiyingyongzhong,womenhuanxuyaogenjuxiangmudejutiqingkuanghexuqiulaidiaozhengheyouhuawomendeCMakegoujiancelue。4.1.4 shiyongxiandaiCMakemingling(Using Modern CMake Commands)xiandaideCMakebanbentigongliaoyixiexindeminglinghetexing,zhexieminglinghetexingkeyishiwomendeCMakeLists.txtwenjiangengjiajianjieheyiyulijie。liru,target_include_directories()minglingkeyiyonglaizhidingyigemubiaodetouwenjiansousuolujing,zhebishiyongjiudeinclude_directories()minglinggengjialinghuohezhiguan。zaishiyongxiandaiCMakeminglingshi,womenxuyaozhuyideyigezhongyaoyuanzeshi:jinliangshiyongmubiaoshuxing(target properties)erbushiquanjubianliang(global variables)。zheshiyinweimubiaoshuxingkeyishiwomendeCMakeLists.txtwenjiangengjiamokuaihua,yegengrongyilijieheweihu。4.1.5 liyongCMakedejiaobengongneng(Leveraging CMake’s Scripting Capabilities)CMakebujinshiyigegoujiangongju,tayeshiyizhongjiaobenyuyan。womenkeyiliyongCMakedejiaobengongnenglaishixianyixiefuzadegoujianluoji,liru,womenkeyishiyongif()、foreach()dengminglinglaibianxiexunhuanhetiaojianyuju。zaishiyongCMakedejiaobengongnengshi,womenxuyaozhuyideyigezhongyaoyuanzeshi:jinliangbimianguodufuzadejiaobenluoji。guodufuzadejiaobenluojikenenghuishiwomendeCMakeLists.txtwenjiannanyilijieheweihu。xiangfan,womenyinggaijinkenengdishiyongCMaketigongdeminglinghetexing,zheyangkeyishiwomendeCMakeLists.txtwenjiangengjiajianjieheyiyulijie。yishangjiushizaifuzaxiangmuzhongshiyongCMakedeyixieceluehejianyi。zaishijiyingyongzhong,womenhuanxuyaogenjuxiangmudejutiqingkuanghexuqiulaidiaozhengheyouhuawomendeCMakegoujiancelue。4.2 duogeCMakeLists.txtzaifuzaxiangmuzhongdeguanli(Management of Multiple CMakeLists.txt in Complex Projects)zaidaxingdefuzaxiangmuzhong,womentongchanghuiyouduogeCMakeLists.txtwenjian,meigezimuluxiadukenengyouyige。zhexieCMakeLists.txtwenjiangongtongdingyiliaozhenggexiangmudegoujianguize。guanlizhexieCMakeLists.txtwenjianshiyigezhongyaoderenwu,yixiashiyixieceluehejianyi。4.2.1 mokuaihuaguanli(Modular Management)meigeCMakeLists.txtwenjianyinggaizhifuzeguanliqisuozaimuluxiadeyuandaimaheyilai。zheyangkeyishimeigeCMakeLists.txtwenjiandeneirongbaochijianjie,yefangbianwomenlijieheweihumeigemokuaidegoujianguize。4.2.2 tongyidegoujianguize(Unified Build Rules)jinguanmeigeCMakeLists.txtwenjianduyouqizijidegoujianguize,danwomenyinggaijinliangshizhexiegoujianguizebaochiyizhi。zheyangkeyishiwomendegoujianguochenggengjiakeyuce,yefangbianwomenguanliheweihuwomendegoujianguize。4.2.3 liyongCMakedebaoguanligongneng(Leveraging CMake’s Package Management Features)CMaketigongliaoyixieminglinghetexinglaibangzhuwomenguanlixiangmudeyilai,lirufind_package()minglingkeyiyonglaichazhaohejiazaiwaibuku。womenyinggaijinliangliyongzhexieminglinghetexing,zheyangkeyishiwomendeCMakeLists.txtwenjiangengjiajianjie,yekeyibimianyixiechangjiandeyilaiwenti。4.2.4 bimianyingbianmalujing(Avoid Hard-Coded Paths)zaiCMakeLists.txtwenjianzhong,womenyinggaijinliangbimianyingbianmalujing。yingbianmadelujingkenenghuishiwomendegoujianguochengyilaiyutedingdemulujiegou,zhehuijiangdiwomendegoujianguizedekeyizhixing。xiangfan,womenyinggaijinkenengdishiyongCMaketigongdebianliangheminglinglaizhidinglujing,zheyangkeyishiwomendeCMakeLists.txtwenjiangengjiatongyonghekeweihu。yishangjiushizaifuzaxiangmuzhongguanliduogeCMakeLists.txtwenjiandeyixieceluehejianyi。zaishijiyingyongzhong,womenhuanxuyaogenjuxiangmudejutiqingkuanghexuqiulaidiaozhengheyouhuawomendeguanlicelue。4.3 CMakezaidaxingxiangmuzhongdezuijiashijian(Best Practices of CMake in Large Projects)zaidaxingxiangmuzhongshiyongCMake,womenxuyaozunxunyixiezuijiashijian,yiquebaogoujianguochengdegaoxiao、wendinghekeweihu。yixiashiyixiezaidaxingxiangmuzhongshiyongCMakedezuijiashijian。4.3.1 shiyongzuixinbanbendeCMake(Use the Latest Version of CMake)jinkenengshiyongzuixinbanbendeCMake。xinbanbendeCMaketongchanghuibaohanyixiexindetexinghegaijin,zhexietexinghegaijinkenenghuishiwomendegoujianguochenggengjiagaoxiaohewending。ciwai,xinbanbendeCMakeyekenenghuixiufuyixiejiubanbenzhongdewentihequexian。4.3.2 bimianzaiCMakeLists.txtwenjianzhongxiugaibianyiqibiaozhi(Avoid Modifying Compiler Flags in CMakeLists.txt Files)zaiCMakeLists.txtwenjianzhongzhijiexiugaibianyiqibiaozhikenenghuidaozhiyixiewenti。liru,zhekenenghuifugaiyonghuzaiminglingxingzhongzhidingdebianyiqibiaozhi,huozhedaozhizaibutongpingtaishangdegoujianxingweibuyizhi。xiangfan,womenyinggaishiyongCMaketigongdeminglinghetexinglaiguanlibianyiqibiaozhi,lirutarget_compile_options()mingling。4.3.3 shiyongCMakedeceshigongneng(Use CMake’s Testing Features)CMaketigongliaoyixieminglinghetexinglaibangzhuwomenguanliheyunxingceshi,liruenable_testing()minglingheadd_test()mingling。womenyinggaijinliangliyongzhexieminglinghetexing,zheyangkeyishiwomendeceshiguochenggengjiazidonghuahekekong。4.3.4 shiyongCMakedeanzhuanggongneng(Use CMake’s Installation Features)CMaketigongliaoyixieminglinghetexinglaibangzhuwomenguanlixiangmudeanzhuangguocheng,liruinstall()mingling。womenyinggaijinliangliyongzhexieminglinghetexing,zheyangkeyishiwomendeanzhuangguochenggengjiazidonghuahekekong。yishangjiushizaidaxingxiangmuzhongshiyongCMakedeyixiezuijiashijian。zaishijiyingyongzhong,womenhuanxuyaogenjuxiangmudejutiqingkuanghexuqiulaidiaozhengheyouhuawomendegoujianguocheng。wu、CMakeshengchengdeMakefilexiangjie5.1 CMakeruhefanyishengchengMakefilezaishenrulijieCMakeruhefanyishengchengMakefilezhiqian,womenshouxianlaikanyixiaCMakeyuMakefiledeguanxi。ruxiatusuoshi,CMaketongguojiexiCMakeLists.txtwenjian,shengchengduiyingdeMakefile,ranhouzhixingMakefilejinxingbianyilianjie,zuihoushengchengkezhixingwenjian。CMakedezhuyaogongzuojiushijiexiCMakeLists.txtwenjian,bingjiangqifanyichengMakefile。CMakeLists.txtwenjianshiCMakedehexin,tadingyiliaoxiangmudegoujianguize,baokuoxiangmudemulujiegou、xuyaobianyideyuanwenjian、yilaiguanxi、bianyicanshudengxinxi。CMaketongguoduquCMakeLists.txtwenjian,lijiezhexiegoujianguize,ranhoushengchengduiyingdeMakefile。zaishengchengMakefiledeguochengzhong,CMakehuijinxingyixiliedefanyicaozuo。zhexiecaozuozhuyaobaokuo:jiexiCMakeLists.txtwenjian:CMakeshouxianhuiduquCMakeLists.txtwenjian,jiexiqizhongdeminglinghecanshu,lijiexiangmudegoujianguize。shengchengMakefile:genjujiexidedaodegoujianguize,CMakehuishengchengduiyingdeMakefile。zhegeMakefilebaohanliaosuoyoudebianyilianjiemingling,yijiyuanwenjianhemubiaowenjianzhijiandeyilaiguanxi。chuliyilaiguanxi:zaishengchengMakefiledeguochengzhong,CMakehuichuliyuanwenjianzhijiandeyilaiguanxi。ruguoyigeyuanwenjianyilaiyulingyigeyuanwenjian,namezaiMakefilezhong,zhegeyuanwenjiandebianyiminglingjiuhuiyilaiyulingyigeyuanwenjiandebianyimingling。shezhibianyicanshu:CMakehuanhuishezhiMakefilezhongdebianyicanshu,baokuobianyiqixuanxiang、lianjieqixuanxiangdeng。zhexiecanshuhuiyingxiangdaobianyilianjiedeguocheng。yishangjiushiCMakeruhefanyishengchengMakefiledejibenguocheng。zaihouxudexiaojiezhong,womenjiangshenrutantaoMakefiledexiangxijiegouheyuanli,yijiruhezaiCMakezhongshiyongwaibuMakefiledenggaojihuati。5.2 MakefiledexiangxijiexiMakefileshiyoumakegongjuzhixingdeyizhongjiaobenwenjian,tamiaoshuliaoyizumubiao(target)yijigoujianzhexiemubiaosuoxudeguize(rule)。zaiCMakeshengchengdeMakefilezhong,meiyigemubiaotongchangduiyingyigehuoduogeyuanwenjian,erguizezemiaoshuliaoruhecongzhexieyuanwenjianshengchengmubiao。yixiashiyigejiandandeMakefileshili:all: hellohello: main.o function.o g++ main.o function.o -o hellomain.o: main.cpp g++ -c main.cppfunction.o: function.cpp g++ -c function.cppclean: rm *.o hellozaizhegeshilizhong,all、hello、main.o、function.ohecleandushimubiao,ermeigemubiaohoumiandeneirongzeshigoujiangaimubiaodeguize。liru,hellomubiaodeguizeshig++ main.o function.o -o hello,zhetiaoguizegaosumakegongjuruhecongmain.ohefunction.ozhelianggeyuanwenjianshengchenghellozhegemubiao。zaiCMakeshengchengdeMakefilezhong,zhexieguizehuigengjiafuza,yinweitamenxuyaochulixiangmuzhongdeyilaiguanxi、bianyicanshudengwenti。danshi,jibendejiegouheyuanlishixiangtongde:meigemubiaoduyouyizuguize,zhexieguizemiaoshuliaoruhecongyuanwenjianshengchengmubiao。5.3 CMakeruhefanyishengchengMakefiledangrankeyi,rangwomengengshenruditantaoyixieCMakeminglingheshengchengdeMakefilezhijiandeguanxi。add_executable:zhegeminglingzaiCMakezhongyongyudingyiyigemubiaokezhixingwenjian。liru,add_executable(hello main.cpp)huidingyiyigemingweihellodemubiao,zhegemubiaoyoumain.cppzhegeyuanwenjianshengcheng。zaishengchengdeMakefilezhong,zhegeminglinghuibeifanyichengyigebianyimingling,ru$(CXX) $(CXXFLAGS) -o hello main.cpp。zhetiaominglinggaosumakegongjushiyongC++bianyiqi(( C X X ) )hebianyixuanxiang( (CXX))hebianyixuanxiang((CXX))hebianyixuanxiang((CXXFLAGS))laibianyimain.cpp,bingjiangshuchuwenjianmingmingweihello。add_library:zhegeminglingzaiCMakezhongyongyudingyiyigemubiaokuwenjian。liru,add_library(mylib mylib.cpp)huidingyiyigemingweimylibdemubiao,zhegemubiaoyoumylib.cppzhegeyuanwenjianshengcheng。zaishengchengdeMakefilezhong,zhegeminglinghuibeifanyichengyigekushengchengmingling,ru$(AR) $(ARFLAGS) mylib mylib.cpp。zhetiaominglinggaosumakegongjushiyongkushengchengqi(( A R ) )hekushengchengxuanxiang( (AR))hekushengchengxuanxiang((AR))hekushengchengxuanxiang((ARFLAGS))laishengchengmylibzhegeku。target_link_libraries:zhegeminglingzaiCMakezhongyongyudingyimubiaodelianjieku。liru,target_link_libraries(hello mylib)huigaosuCMake,hellozhegemubiaoxuyaolianjiemylibzhegeku。zaishengchengdeMakefilezhong,zhegeminglinghuibeifanyichengyigelianjiemingling,ru$(CXX) $(LDFLAGS) -o hello main.cpp -lmylib。zhetiaominglinggaosumakegongjuzailianjiehelloshi,xuyaolianjiemylibzhegeku。yishangjiushiCMakeminglingheshengchengdeMakefilezhijiandeyixiejibenguanxi。zaishijidexiangmuzhong,zhexieguanxikenenghuigengfuza,yinweiCMakeheMakefiledushifeichangqiangdadegongju,tamentigongliaoxuduogaojigongnenglaichulixiangmuzhongdegezhongwenti。danshi,lijiezhexiejibenguanxishilijieCMakeheMakefiledeguanjian。5.4 CMakeshengchengdeMakefilezhongdechangjianwentijijiejuefanganzaishiyongCMakeshengchengMakefiledeguochengzhong,kenenghuiyudaoyixiechangjiandewenti。zhexiewentikenengshejidaoMakefiledeshengcheng、zhixing、yijiyilaiguanxidechulidengfangmian。xiamianwomenjiangxiangxijieshaozhexiewenti,yijixiangyingdejiejuefangan。Makefileshengchengshibai:zheshiyigebijiaochangjiandewenti,tongchangshiyouyuCMakeLists.txtwenjianzhongdecuowudaozhide。jiejuezhegewentidefangfashijianchaCMakeLists.txtwenjian,quebaoqizhongdeminglinghecanshudushizhengquede。Makefilezhixingcuowu:zhegewentitongchangshiyouyuMakefilezhongdeminglingcuowudaozhide。jiejuezhegewentidefangfashijianchaMakefile,quebaoqizhongdebianyilianjieminglingdushizhengquede。yilaiguanxichulicuowu:zhegewentitongchangshiyouyuCMakechuliyuanwenjianzhijiandeyilaiguanxishichucuodaozhide。jiejuezhegewentidefangfashijianchaCMakeLists.txtwenjian,quebaoqizhongdeyilaiguanxidushizhengquede。yishangjiushizaishiyongCMakeshengchengMakefileshikenengyudaodeyixiechangjianwenti,yijixiangyingdejiejuefangan。zaishijishiyongzhong,kenenghuanhuiyudaoqitadewenti,zheshihouxuyaogenjujutidecuowuxinxi,jinxingxiangyingdepaichahejiejue。liu、CMakeyuwaibuMakefiledejiaohu(Interaction Between CMake and External Makefile)6.1 ruhezaiCMakezhongshiyongwaibuMakefile(How to Use External Makefile in CMake)zaiCMakezhongshiyongwaibuMakefile,womenkeyishiyongadd_custom_commandheadd_custom_targetzhelianggemingling。zhelianggeminglingkeyiyonglaizhixingyixiezidingyidegoujianguize,biruyunxingyigejiaoben,chuangjianyigewenjian,huozheyunxingyigeMakefile。6.1.1 add_custom_commandadd_custom_commandminglingyongyudingyiruheshengchengyigewenjian。zhegeminglingyouhenduocanshu,danshizuichangyongdeshiOUTPUT,COMMANDheDEPENDS。OUTPUTcanshuyongyuzhidingshengchengdewenjian。COMMANDcanshuyongyuzhidingshengchengwenjiandemingling,keyishirenheshellmingling。DEPENDScanshuyongyuzhidingshengchengwenjiansuoyilaidewenjian。liru,womenkeyishiyongyixiaminglinglaiyunxingyigewaibuMakefile:add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/generated_file COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR}/external_project DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/external_project/Makefile)zhegeminglingbiaoshi,ruguogenerated_filebucunzai,huozheexternal_project/Makefileyourenhegaidong,namejiuhuizhixingmake -C external_projectminglinglaishengchenggenerated_file。6.1.2 add_custom_targetraner,add_custom_commandzhiyouzaiqishuchuwenjianbeiqitamubiaoshiyongshi,caihuibeizhixing。ruguowomenxiangyaozaimeicigoujianshiduzhixingmougemingling,namewomenxuyaoshiyongadd_custom_targetmingling。add_custom_targetminglingyongyudingyiyigezidingyidemubiao。zhegemubiaobuhuishengchengrenhewenjian,yebuhuizaigoujianshizidongbeizhixing。womenxuyaoshoudongzhixingzhegemubiao,huozhejiangtatianjiaweiqitamubiaodeyilai。liru,womenkeyishiyongyixiaminglinglaidingyiyigeyunxingwaibuMakefiledemubiao:add_custom_target( run_external_makefile COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR}/external_project)zhegeminglingdingyiliaoyigemingweirun_external_makefiledemubiao。womenkeyishiyongmake run_external_makefileminglinglaishoudongzhixingzhegemubiao。ruguowomenxiangyaozaimeicigoujianshiduzhixingzhegemubiao,namewomenkeyijiangtatianjiaweiqitamubiaodeyilai。liru,womenkeyishiyongyixiaminglinglaijiangrun_external_makefiletianjiaweimy_targetdeyilai:add_dependencies(my_target run_external_makefile)zheyang,meicigoujianmy_targetshi,duhuixianzhixingrun_external_makefilemubiao。yishangjiushiruhezaiCMakezhongshiyongwaibuMakefiledejibenfangfa。zaishijishiyongzhong,womenkenengxuyaogenjujutidexuqiulaidiaozhengzhexieminglingdecanshu。6.1.3 add_custom_commanddeqitacanshuchuliaoOUTPUT,COMMANDheDEPENDScanshuwai,add_custom_commandminglinghuanyouyixieqitadecanshu,keyiyonglaikongzhiminglingdexingwei。WORKING_DIRECTORYcanshuyongyuzhidingminglingdegongzuomulu。ruguobuzhidingzhegecanshu,nameminglingdegongzuomulujiushidangqiandegoujianmulu。COMMENTcanshuyongyuzhidingyigezhushi,zhegezhushihuizaiminglingzhixingshixianshizaikongzhitaishang。VERBATIMcanshuyongyukongzhiminglingdecanshushifouxuyaozhuanyi。ruguoshezhiweiTRUE,nameminglingdecanshujiuhuibeizhuanyi,zheyangjiukeyianquandichulibaohanteshuzifudecanshu。liru,womenkeyishiyongyixiaminglinglaiyunxingyigewaibuMakefile,bingxianshiyigezhushi:add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/generated_file COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR}/external_project DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/external_project/Makefile WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Running external Makefile" VERBATIM)zhegeminglingbiaoshi,ruguogenerated_filebucunzai,huozheexternal_project/Makefileyourenhegaidong,namejiuhuizai${CMAKE_CURRENT_BINARY_DIR}muluxiazhixingmake -C external_projectminglinglaishengchenggenerated_file,bingxianshi"Running external Makefile"dezhushi。yishangjiushizaiCMakezhongshiyongwaibuMakefiledejibenfangfa。zaishijishiyongzhong,womenkenengxuyaogenjujutidexuqiulaidiaozhengzhexieminglingdecanshu。6.2 waibuMakefileruheyingxiangCMakeshengchengdeMakefile(How External Makefile Affects Makefile Generated by CMake)zaiCMakezhong,womenkeyitongguoadd_custom_commandhuoadd_custom_targetminglinglaicharuwaibuMakefile,congeryingxiangCMakeshengchengdeMakefile。xiamianshizhegeguochengdeshiyitu:bianjitianjiatupianzhushi,buchaoguo 140 zi(kexuan)zaizhegeguochengzhong,CMakeshouxianjiexiCMakeLists.txtwenjian,shengchengCMakeCache.txtwenjian。ranhou,CMakegenjuCMakeCache.txtwenjianshengchengMakefile。zaishengchengMakefiledeguochengzhong,CMakehuizhixingadd_custom_commandhuoadd_custom_targetmingling,charuwaibuMakefile。charuwaibuMakefiledezhuyaomudeshiweiliaozengjiayixiezidingyidegoujianguize。liru,womenkenengxuyaozaigoujianguochengzhongzhixingyixieteshudemingling,huozheshengchengyixieteshudewenjian。tongguocharuwaibuMakefile,womenkeyizaiCMakedegoujianguochengzhongzhixingzhexiezidingyidegoujianguize。raner,charuwaibuMakefileyekenenghuidailaiyixiewenti。liru,ruguowaibuMakefilezhongdegoujianguizeyuCMakeshengchengdegoujianguizechongtu,namekenenghuidaozhigoujianshibai。yinci,zaicharuwaibuMakefileshi,womenxuyaoquebaowaibuMakefilezhongdegoujianguizeyuCMakeshengchengdegoujianguizeshijianrongde。zaishijishiyongzhong,womenkenengxuyaogenjujutidexuqiulaidiaozhengcharuwaibuMakefiledefangshi。liru,womenkeyitongguoxiugaiadd_custom_commandhuoadd_custom_targetminglingdecanshu,laikongzhiwaibuMakefiledecharuweizhi,huozhekongzhiwaibuMakefiledezhixingfangshi。6.3 gaojijiqiao:ziyoukongzhiCMakeshengchengguize(Advanced Techniques: Freely Control CMake Generation Rules)CMaketigongliaoyixiliedemingling,keyiyonglaiziyoukongzhishengchengguize。zhexieminglingkeyiyonglaidingyizidingyidemubiao,tianjiayilaiguanxi,shezhibianyixuanxiang,dengdeng。xiamianwomenjiangjieshaoyixiegaojidejiqiao,keyibangzhunigenghaodikongzhiCMakedeshengchengguize。6.3.1 zidingyimubiao(Custom Targets)zaiCMakezhong,womenkeyishiyongadd_custom_targetminglinglaidingyiyigezidingyidemubiao。zhegemubiaobuhuishengchengrenhewenjian,yebuhuizaigoujianshizidongbeizhixing。womenxuyaoshoudongzhixingzhegemubiao,huozhejiangtatianjiaweiqitamubiaodeyilai。liru,womenkeyishiyongyixiaminglinglaidingyiyigeyunxingwaibuMakefiledemubiao:add_custom_target( run_external_makefile COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR}/external_project)zhegeminglingdingyiliaoyigemingweirun_external_makefiledemubiao。womenkeyishiyongmake run_external_makefileminglinglaishoudongzhixingzhegemubiao。6.3.2 tianjiayilaiguanxi(Adding Dependencies)zaiCMakezhong,womenkeyishiyongadd_dependenciesminglinglaitianjiamubiaozhijiandeyilaiguanxi。zhegeminglingjieshoulianggehuogengduodecanshu,diyigecanshushimubiao,houmiandecanshushitasuoyilaidemubiao。liru,womenkeyishiyongyixiaminglinglaijiangrun_external_makefiletianjiaweimy_targetdeyilai:add_dependencies(my_target run_external_makefile)zheyang,meicigoujianmy_targetshi,duhuixianzhixingrun_external_makefilemubiao。6.3.3 shezhibianyixuanxiang(Setting Compilation Options)zaiCMakezhong,womenkeyishiyongtarget_compile_optionsminglinglaishezhimubiaodebianyixuanxiang。zhegeminglingjieshoulianggecanshu,diyigecanshushimubiao,diergecanshushibianyixuanxiang。liru,womenkeyishiyongyixiaminglinglaiweimy_targetshezhibianyixuanxiang:target_compile_options(my_target PRIVATE -Wall -Wextra)zhegeminglinghuiweimy_targettianjia-Wallhe-Wextrazhelianggebianyixuanxiang。yishangjiushizaiCMakezhongziyoukongzhishengchengguizedeyixiegaojijiqiao。zaishijishiyongzhong,womenkenengxuyaogenjujutidexuqiulaidiaozhengzhexieminglingdecanshu。zuihou,“zhuanqiandebushixiangfa,ershijingdeng”。yigerenxuyaozuodezhishiguanchashichangzhengzaigaosutashime,bingduicizuochufanying。daanjiuzaishichangbenshen,tiaozhanlaiziduichengxianchulaideshishizuochuzhengquedejieshi。

以(驰颈)上(厂丑补苍驳)就(闯颈耻)是(厂丑颈)比(叠颈)亚(驰补)迪(顿颈)汉(贬补苍)顿惭-颈的(顿别)前(蚕颈补苍)防(贵补苍驳)撞(窜丑耻补苍驳)梁(尝颈补苍驳)以(驰颈)及(闯颈)底(顿颈)盘(笔补苍)的(顿别)构(骋辞耻)造(窜补辞)和(贬别)用(驰辞苍驳)料(尝颈补辞),车(颁丑别)友(驰辞耻)简(闯颈补苍)单(顿补苍)了(尝颈补辞)解(闯颈别)一(驰颈)下(齿颈补)。

诲补苍蝉丑颈箩颈耻锄补颈虫颈别锄耻辞锄耻辞蹿别苍蝉丑辞耻尘别颈濒颈补苍驳迟颈补苍,迟补测辞耻产别颈驳辞耻锄颈辫补颈诲补辞迟补丑别测颈驳别苍补苍谤别苍箩颈飞别苍诲别丑耻补尘颈补苍。肠丑别苍驳飞别颈锄丑补辞产补辞驳补苍驳诲补辞测补苍锄耻颈办补苍锄丑辞苍驳诲别苍惫测补苍测耻补苍。

01. 平(Ping)遥(Yao)古(Gu)城(Cheng)

刚开不久又要关!上海迪士尼乐园今日起暂时关闭2022-11-29 08:11·手机中国【CNMO新闻】作为国内数一数二的主题乐园,上海迪士尼乐园可以说是许多人前往上海后必去的景点之一,也吸引了许多人慕名而来。不过由于疫情的影响,上海迪士尼乐园的运营也受到了一定影响。在11月25日刚宣布恢复营业后不久,11月29日,上海迪士尼乐园官方发文表示,根据疫情防控要求,该乐园将于今日(11月29日)开始暂时关闭。迪士尼乐园上海迪士尼度假区11月29日发布消息称,根据疫情防控要求,上海迪士尼乐园将于2022年11月29日(周二)起暂时关闭。恢复运营时间一旦明确,我们将及时告知。迪士尼小镇、星愿公园和两座度假区主题酒店将继续运营。上海迪士尼度假区表示,对于在此期间受到影响的各位游客,我们深表歉意,并将提供乐园门票的退改服务。官方公告刚在不久前的11月24日,上海迪士尼乐园才刚刚宣布,将于2022年11月25日起恢复运营。运营时间为8:30-20:30。没想到仅仅过去了不到一周,迪士尼乐园又因为疫情影响,不得不再一次暂停营业。据悉,上海迪士尼乐园占地1.16平方公里,位于上海市浦东新区川沙镇黄赵路310号,于2016年6月16日正式开园,是中国内地首座迪士尼主题乐园,也是中国规模最大的现代服务业中外合作项目之一。该乐园主题园区分为米奇大街、奇想花园、探险岛、宝藏湾、明日世界、梦幻世界、迪士尼·皮克斯玩具总动员。拥有迪士尼城堡、漫威英雄总部、巴斯光年星际营救等游乐项目。赵丽有些激动:“可是我已经面试了好多次了,每次都是这样。你根本不懂我的感受!”《《漂亮的保姆》完整版》中文在线观看-枪战片 - 星辰影院《漂亮的保姆3中文版完整版》手机高清在线观看-飘雪...

祭祀祖先既是一种传统文化的延续也是一种对生命的深刻理解高僧们通过对经书的研读与参悟揭示了祭祀的深远意义它不仅能保佑后代更能在无形中提升我们的道德修养与心灵境界

发布于:浉河区
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
意见反馈 合作

Copyright ? 2023 Sohu All Rights Reserved

搜狐公司 版权所有