电影_《时尚先锋香奈儿》_高清在线观看_首播影院
市场人士认为,FF延迟交付的原因可能主要是两个方面:一是钱不够,供应商积极性不高;二是技术不够,涉及问题较多,难以大规模交付。
2024年05月12日,在之后的暑假期间,游客还可以在此畅玩经典主题项目:在《女娲补天》中感受洪荒之地的波澜壮阔;在《童话传说剧场》中跟随熊大、熊二保卫森林;在《致远致远》中体验传奇名舰的伟大历程;在《岁月如歌》中重温激情澎湃的光辉岁月。
电影_《时尚先锋香奈儿》_高清在线观看_首播影院
买林俊杰演唱会门票付款后变林子祥 骗子借退票骗取手续费|追踪到底原创2024-01-19 20:27·封面新闻封面新闻记者 于婷抢票时林俊杰付款变林子祥1月16日、17日封面新闻连续多日持续报道了网友购买林俊杰JJ20世界巡回演唱会-成都站演唱会票付款后却发现出票信息为2024林子祥50坚演唱会由于该演出第二天就开演平台拒绝办理退票购票者质疑平台故意跳票平台否认系统问题认为是购票者不小心点错截至1月19日下午2点首批维权群中已有7张票成功完成退款流程共收到退款9360元有4张票已收到退款通知但未到账目前仍有11张已观看了林子祥演唱会且被核销的门票和后续新增的10张非林俊杰集中放票期抢购的林子祥演唱会门票大麦平台拒绝办理退票维权票数已增至32张有人冒充工作人员收取退票费不要相信这个人他是骗子从17日开始持续有购票者收到自称是大麦票务员的人发来的消息表示可以为他们内部申请退票但是需要收取20%的退票费经过购票者再三核实该人并非大麦平台工作人员是希望通过这种方式骗取退票手续费维权群内大家也分享退票进展情况并相互提醒避免受骗封面新闻连续多日发布《买时林俊杰 付款后变林子祥 看演唱会也得服从调剂网友质疑平台方跳票|追踪到底》《买林俊杰演唱会门票被调剂续:维权网友增至11人 平台同意退票|追踪到底》详细报道了买林俊杰演唱会门票被调剂事件报道发出后引起网友热议除了有反映曾遇到类似蔡依林变蔡健雅林俊杰变林志炫等情况之外也有12日、13日同样购买林俊杰演唱会被调剂为林子祥的网友陆续站出来要求平台全额退票但目前平台仍拒绝为他们办理退票截至1月19日下午2点首批维权群内收到通知的未观演未核销的购票者陆续收到来自大麦平台的退款共有7张票已完成退款流程共收到退款9360元抢票林俊杰付款变林子祥的维权网友票数增加至32张购票金额总计41760元还有21张票未收到退款通知其中11张为观演核销另外10张平台表示不予退票原因为非12日林俊杰集中放票期抢票大麦同意为12日购票且未核销未观演者退票有网友已收到大麦退款网友呼吁平台优化界面避免跳票及对购票者造成误导我们现在还是准备继续维权坚持我们的全额退款诉求网友陈女士和媛媛一样都是13日听说有回流票出现于是打开大麦APP进行购票付款后发现购买的为当晚2024林子祥50坚演唱会林子祥演唱会购票页面林俊杰演唱会购票页面虽然情况相同但是陈女士的维权结果却没有媛媛那么顺利由于她并不在首批维权群当中当她向平台提出退票诉求时客服人员给出了新的拒绝理由根据主办方意见只退林俊杰开票抢票时段抢购的林子祥演唱会门票即12日20点和20点30分前后购买的我觉得这个很不公平明明就有同样13日购买的网友退票成功为什么不给我们退由于多次与平台沟通无果购票者转而与演出主办方进行沟通得到回复为大麦不存在任何跳票情况主办方允许退票是考虑到林子祥演唱会已经结束但是一些用户未核销经综合考虑才最终同意平台首页购票入口除了部分13日购票未退的情况之外两天的购票者当中都有因与平台多次沟通退票无果无奈之下于13日当晚去观看了林子祥演唱会的网友他们也希望能够得到平台给出的解决方案我们是因为多次退票无果才听了客服的建议去看的演唱会这个并不是我们的本意因此我们也是希望能退票的如果不行也希望平台拿出应有的态度改进页面购票推荐入口避免更多的人像我们一样被‘调剂’去看一场不想看的演出参与方式2、打开封面新闻客户端点击进入青蕉页面#云求助-云投诉#话题在线留言互动3、可以通过封面新闻的官方微博、微信或抖音账号以及青蕉视频官方微博进行留言发起求助4、您还可以拨打热线028—86969110进行求助所有求助内容经编辑审核通过后即视为发布成功封面新闻将24小时实时解答、跟进并提供相关协助(为保护隐私相关信息将会保密请放心)【如果您有新闻线索欢迎向我们报料一经采纳有费用酬谢报料微信关注:ihxdsb报料QQ:3386405712】
11.87倍;监管“零容忍”背景下,退市新规效力不断显现,2023年开年仅一个多月,A股市场已有多只股票提前锁定退市。业内专家表示,2023年,随着新一轮上市公司“提质”计划的实施和全面实行股票发行注册制改革正式启动,A股退市力度有望加大,资本市场优胜劣汰的功能将进一步加强,常态化退市格局基本形成。
suzuozuobiaoshi,“muqianyinxingxinyongkazhengzhujianjinrucunliangshidai,xinyongkayewuyicongzhongkaikaliangfazhanzhizhongshiyonglvdejieduan。yinxingzaichunjieyingxiaodetongshi,xushenwajueyonghuxuqiu,bingcongzhongdazaochayihuajingzhengyoushi,buduanyouhuayonghutiyan,zhiyoubafuwushentoudaogegechangjingzhong,cainengzhenzhengcuhuoyonghu、cuhuoxiaofei,dadaoyingxiaomude。”6yue9ri,》fabu,chuangjinhexinjijinshouxijingjixuejiaweifengchunrenwei,jijintouziguwenyewudedalifazhanshizhongguozichanguanliyewugonggeicegaigedezhongyaoneirong,gonggeinenglidetishengduiyuyejieshengtaidefanshengjuyoujuedingxingdezuoyong。zheshizaizhongguoxiandaihuajianshedezhengchengzhong,jinrongrenminxingtishengdedabeijingxia,zhudongshiyingshehuidazhongcaifuguanlixuqiudebiranzhiju。2019nianzhijindetouguyewushidiankeyikanchengtougu1.0shidai,zhegeshidaiyewufazhanshijianqudeliaohenduodechengji,danyecunzaizhuoguizegonggeibuzu、bufenjigou“zhongtouqinggu”hefuwucunzai“chanpinhua”qingxiangdengwenti。
其(Qi)中(Zhong),渝(Yu)农(Nong)商(Shang)行(Xing)每(Mei)股(Gu)分(Fen)红(Hong)0.2714元(Yuan),股(Gu)息(Xi)率(Lv)7.01%,居(Ju)银(Yin)行(Xing)板(Ban)块(Kuai)第(Di)一(Yi)。
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。mohaibo:xianzaiAguzhengtiguzhiyijingchuzaidiguzhiqujian,lachangtouzizhouqikan,dangqiandetouzideshenglvyijingbijiaogao。biru:WindquanAzhishudePE-TTMguzhiyijingchuzaiguoqu5nian25%yixiadefenweishudejiaodiwei,zhuyaoxingyebankuairu:shangyouziyuan、zhongyouzhizaoduyijingchuzailishijiaodiguzhiqujian,erjinnianzuiqiangshideTMTzaijinglihuidiaohou,guzhiyehuiguidaoguoqu10nianzhongshupianxiazuoyoudequjian。
盈(Ying)利(Li)能(Neng)力(Li)方(Fang)面(Mian),2023年(Nian)上(Shang)半(Ban)年(Nian),招(Zhao)联(Lian)消(Xiao)费(Fei)金(Jin)融(Rong)“增(Zeng)收(Shou)不(Bu)增(Zeng)利(Li)”,实(Shi)现(Xian)净(Jing)利(Li)润(Run)18.62亿(Yi)元(Yuan),较(Jiao)上(Shang)年(Nian)19.37亿(Yi)元(Yuan)减(Jian)少(Shao)3.87%;实(Shi)现(Xian)营(Ying)业(Ye)收(Shou)入(Ru)93.66亿(Yi)元(Yuan),较(Jiao)上(Shang)年(Nian)的(De)84.16亿(Yi)元(Yuan)增(Zeng)长(Chang)11.29%。
高铁电气5月31日晚间公告,公司中标太子城至锡林浩特铁路内蒙古段四电专业物资设备采购招标项目TX-JCW-13包件,中标金额1.75亿元,占公司2022年度营业收入的11.74%。截至23日收盘,隆基绿能、阳光电源、晶澳科技、德业股份、福莱特、先导智能、锦浪科技纷纷创出阶段新低。电影_《时尚先锋香奈儿》_高清在线观看_首播影院
总营收为331亿元与上年同期相比基本持平