Hacker News

Hoʻonohonoho hou ʻia a hiki ke huli ʻia no Conan C a me C++ pūʻolo manakia

Nā Manaʻo

14 min read Via blog.conan.io

Mewayz Team

Editorial Team

Hacker News

Ka hoʻonohonoho hou ʻana a hiki ke ʻimi ʻia no Conan C a me C++ Pūʻulu Manaʻo

ʻO ka hoʻonohonoho hou ʻana a hiki ke ʻimi ʻia ma Conan e hōʻoia i kēlā me kēia kūkulu ʻana o kāu papahana C a me C++ e hāʻawi i nā hopena like ʻole me ka manaʻo o ka mīkini, ka mea hoʻomohala, a i ʻole ka paipu CI e hoʻokō nei. Ma ka laka ʻana i nā mana hilinaʻi, ka hopu ʻana i nā hoʻonohonoho hoʻonohonoho i loko o nā ʻaoʻao, a me ka mālama ʻana i kahi ala hoʻokele akaka o kēlā me kēia hōʻano hou ʻana o ka pūʻolo, e hoʻopau nā hui i ka pilikia kaulana "hana ma kaʻu mīkini" e hoʻopilikia nei i nā kahe hana hoʻomohala ʻōiwi.

No nā hui ʻenekinia e hoʻokele ana i nā codebase C++ paʻakikī, ʻoi aku ka paʻakikī o ka hoʻonohonoho hoʻonohonoho ʻana - he kumu ia o nā pahu hana kūʻai nui, nā nāwaliwali palekana, a me nā hola hoʻomohala pau ʻole. Ua hoʻolauna ʻo Conan 2.x i nā hoʻomaikaʻi koʻikoʻi i ka reproducibility a me ka traceability, e hoʻolilo iā ia i ke kūlana de facto no ka hoʻokele hilinaʻi C a me C++ hou. He mea nui ka hoʻomaopopo ʻana i ka hoʻohana ʻana i kēia mau mana no kēlā me kēia hui koʻikoʻi e pili ana i ke kūkulu ʻana i ka hilinaʻi.

No ke aha he mea koʻikoʻi ka hoʻonohonoho hou ʻana ma ka hoʻokele pūʻulu C++?

Ke kū nei nā papahana C a me C++ i nā luʻi kūʻokoʻa o ka hana hou ʻana i ʻike pinepine ʻole ʻia e nā kaiaola kaiaola hoʻokele. ʻO nā mana hoʻohui, nā hoʻokō waihona maʻamau, nā hae linker, a me nā kiʻi hoʻolālā i hoʻopaʻa ʻia e pili ana i ka hoʻohālikelike binary. Hiki i kahi ʻokoʻa liʻiliʻi o ka pae hoʻomaʻamaʻa a i ʻole kahi hoʻonohonoho ABI like ʻole ke hoʻolauna i nā pōʻino wā holo i paʻakikī loa ke ʻike.

Hoʻopuka ʻo Conan i kēia ma kāna hoʻonohonoho a me nā hiʻohiʻona koho. Lawe ʻia kēlā me kēia pūʻolo i ka metadata e wehewehe ana i ka mea hoʻopili pololei, ka mana, ke ʻano kūkulu, a me ka hale hana i kūkulu ʻia ai. Ke hoʻokomo ʻoe i nā mea hilinaʻi, helu ʻo Conan i kahi ID puʻupuʻu kūʻokoʻa mai kēia mau hoʻonohonoho, e hōʻoiaʻiʻo ana e hoʻoholo ʻia nā binaries kūpono. ʻO kēia ʻōlelo hoʻoholo hoʻoholo ʻo ia ke kumu o ka hana hou ʻana.

Ma waho aʻe o ka hoʻohālikelike binary, kākoʻo ka reproducibility i ka hoʻokō ʻana i nā hoʻoponopono i nā ʻoihana e like me ka automotive, aerospace, a me nā mea lapaʻau, kahi e pono ai ʻoe e hōʻoia ua kūkulu ʻia kahi binary kikoʻī mai nā kumu kikoʻī me nā kaulahao ponoʻī. Hoʻopaʻa ʻia ka mīkini paʻa waihona a Conan i kēia pakuhi hilinaʻi holoʻokoʻa i hoʻokahi mea kiʻi i hoʻomalu ʻia.

Pehea e hiki ai i nā Conan Lockfiles ke ho'ā i ka Traceable Build?

Lockfiles ka hana mua a Conan no ka hoʻokuʻu ʻana i ka pakuhi hilinaʻi ma kahi kūlana maikaʻi. Ke holo ʻoe i conan lock create, hoʻoholo ʻo Conan i nā hilinaʻi transitive āpau a hoʻopaʻa i kā lākou hoʻoponopono pololei, nā ID pūʻolo, a me nā peʻa manawa. Hiki ke hoʻopaʻa ʻia kēia faila laka i ka mana mana a kaʻana like i nā hui a me nā kaiapuni CI.

  • Paʻi ʻana i ka mana: Hoʻopaʻa nā Lockfiles i ka hoʻoponopono pololei o kēlā me kēia hilinaʻi, e pale ana i nā hoʻomaikaʻi i manaʻo ʻole ʻia mai ka haki ʻana i kāu kūkulu ma waena o nā holo paipu.
  • Pono kiʻi: Paʻa ka lāʻau hilinaʻi transitive holoʻokoʻa, no laila ʻaʻole hiki ke hoʻololi i nā hilinaʻi kū ʻole me ka ʻole o ka hōʻano hou lockfile.
  • Kūpono CI/CD: ʻO ka hāʻawi ʻana i ka waihona laka hoʻokahi i kēlā me kēia mea hana hale e hōʻoiaʻiʻo i nā huahana like ʻole inā ʻoe e kūkulu ma luna o kahi pona mea hoʻomohala a i ʻole ke kapua holo.
  • Hoʻoponopono a hoʻihoʻi: Ma ka hoʻololi ʻana i nā faila laka me ka code kumu, hiki iā ʻoe ke hana hou i kekahi kūkulu mōʻaukala e like me ka mea i hana mua ʻia.
  • Laka ʻāpana: Kākoʻo ʻo Conan 2.x i ka laka ʻana i nā ʻāpana kikoʻī wale nō o ka pakuhi, e hāʻawi ana i ka maʻalahi o nā hui e pine i nā hilinaʻi koʻikoʻi me ka ʻae ʻana i nā mea hou i hoʻomalu ʻia ma nā wahi ʻē aʻe.

ʻAʻole i pau ka hana hou ʻana me ka ʻole o ka ʻike ʻia. ʻO ka ʻike ʻana he mea koʻikoʻi ke kūkulu ʻana, akā ʻo ka ʻike pololei i nā mea hoʻokomoi hoʻopuka i kahi binary i hāʻawi ʻia - a hiki iā ia ke hōʻoia i nā mahina ma hope - ʻo ia ka mea e hoʻokaʻawale ai i ka ʻenehana loea mai ka hana kuhi.

He aha ke kuleana e pāʻani ai nā kiʻi a me nā faila hoʻonohonoho?

Ho'ākāka nā kiʻi kiʻi Conan i ke kaiapuni kūkulu ma kahi hōʻike haʻihaʻi. Hōʻike ʻia kahi ʻaoʻao i ka mea hoʻopili, kona mana, ka C++ maʻamau, ka ʻōnaehana hana i manaʻo ʻia, a me nā hoʻonohonoho maʻamau a i ʻole nā ​​ʻano hoʻololi kaiapuni e pono ai no ke kūkulu ʻana. Ma ka mālama ʻana i nā kiʻi kiʻi no kēlā me kēia paepae i manaʻo ʻia — Linux GCC 13, Windows MSVC 17, macOS Clang 16 — hoʻohālikelike nā hui i kā lākou hoʻonohonoho paʻa paʻahana ma kēlā me kēia hale hana a kūkulu i kahi kikowaena.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Hiki ke hoʻopaʻa ʻia a haku ʻia nā kiʻi. Hiki ke wehewehe ʻia kahi ʻaoʻao kumu i nā hoʻonohonoho kaʻana like, aʻo nā uhi kikoʻī kikoʻī e hoʻohui i nā hae hilinaʻi. Hoʻemi kēia composability i ka hana hou ʻana a hōʻoia i ka hoʻololi mau ʻana i nā hoʻonohonoho kaʻana like. ʻO ka mālama ʻana i nā moʻolelo i loko o kāu waihona ma ka ʻaoʻao o kāu conanfile.py e hoʻololi i kāu hoʻonohonoho kūkulu ʻana i code, ma muli o ka loiloi like a me nā kaʻina hana e like me kāu kumu.

Kākoʻo pū ʻo Conan i faila hoʻonohonoho ʻana (global.conf a me kēlā me kēia papahana conanfile.py hoʻonohonoho) nāna e hoʻomalu i nā ʻano e like me nā hoʻoiho like ʻana, nā kulekele hoʻāʻo hou, a me nā mea maʻamau mamao. ʻO ka hoʻonohonoho ʻana i kēia mau hoʻonohonoho e pale aku i nā mea hoʻomohala hoʻokahi mai ka hoʻokomo ʻole ʻana i nā mea like ʻole.

Pehea e hiki ai i nā hui ke hoʻohui i nā mea hana hiki ke ʻimi ʻia i loko o kā lākou kaʻina hana?

ʻO ka hoʻohana ʻana i nā hoʻonohonoho Conan hiki ke hana hou ʻia ʻaʻole ia he hoʻoholo pono hana - pono ia i ka hoʻopaʻi ʻana i ka hana. E hoʻomaka ma ka hoʻokumu ʻana i hoʻokahi kumu o ka ʻoiaʻiʻo no nā profiles a me nā lockfiles i kāu waihona. E hoʻohui i ka hana lockfile i loko o kāu kahe hana noi huki i nānā ʻia nā loli hilinaʻi ma mua o ka hui ʻana. E hoʻohana i nā nā hoʻoponopono meaʻaia Conan i kūkulu ʻia a me nā nā hoʻoponopono pūʻoloe mālama i kahi moʻolelo hiki ʻole ke hoʻololi ʻia o kēlā me kēia mea kiʻi i hana ʻia e kāu hui.

No nā hui e hoʻokele ana i ka nui o nā lawelawe a me nā hale waihona puke, hui pū kēia paʻakikī. ʻO ka nānā ʻana i ka lockfile e pili ana i ka hoʻoili ʻana, ka mālama ʻana i ke kūlike o ka profile ma nā waihona, a me ka hōʻoia ʻana e hahai kēlā me kēia hui i nā kūlana hoʻonohonoho like e lilo i mea hoʻokūkū hoʻokele papahana e like me ka ʻenehana. ʻO kēia kahi e lilo ai kahi kahua hana kikowaena i mea waiwai - hāʻawi i ka ʻike ma waena o nā hui, ka hoʻomaʻamaʻa ʻana i ka hoʻokō pono ʻana, a me ka hoʻohui ʻana i nā hoʻoholo hoʻonohonoho kūkulu ʻana i nā papa manawa o ka papahana a me nā pae kiʻekiʻe o ka lawe ʻana.

Kūkulu ʻia ka OS pāʻoihana 207-module ʻo Mewayz no kēia ʻano hoʻohui like ʻole. Me nā modula i hoʻolaʻa ʻia no ka hoʻopaʻa ʻana i ka papahana, ka hui pū ʻana, a me nā kahe hana hana, hāʻawi ʻo Mewayz i nā alakaʻi ʻenekinia i hoʻokahi dashboard e hoʻokele i nā kaʻina hana e hoʻopuni ana i nā hoʻoholo loea e like me ka hoʻokele hilinaʻi a me ke kūkulu ʻana i ka hoʻonohonoho.

Nīnau pinepine

He aha ka ʻokoʻa ma waena o kahi lockfile Conan a me kahi pine mana ma conanfile.py?

He pine mana ma kāu conanfile.py (e like me requires = "zlib/1.3.1") kaohi i nā mana hilinaʻi pololei akā ʻaʻole ia e hoʻokuʻu i nā hilinaʻi transitive a i ʻole hopu i nā hoʻoponopono meaʻai kikoʻī. ʻOi aku ka lōʻihi o ka lockfile ma ka hoʻopaʻa ʻana i ka pakuhi piha i hoʻoholo ʻia, me kēlā me kēia hilinaʻi kūʻokoʻa a me kona hoʻoponopono pololei ʻana, e hōʻoia ana i ka hoʻonā hoʻoholo piha ʻana ma nā wahi āpau.

Hiki ke hoʻohana ʻia nā waihona laka Conan ma nā ʻōnaehana hana like ʻole?

Hoʻopili ʻia nā faila laka i nā hoʻonohonoho kikoʻī a me ka ʻaoʻao i hoʻohana ʻia i ka wā o kā lākou hana ʻana. Inā huli kāu papahana i nā paepae he nui, e hana maʻamau ʻoe i kahi lockfile ʻokoʻa no kēlā me kēia hui pūnaewele-profile. Kākoʻo ʻo Conan 2.x i nā hoʻolālā laka ʻāpana e hiki ai ke laka ʻia nā ʻāpana kaʻana like o ka pakuhi ʻoiai e mau ana nā lālā kikoʻī o ka platform.

Ehia mau manawa e hoʻohou ai nā hui i kā lākou mau waihona laka Conan?

ʻO ka hoʻomaʻamaʻa maikaʻi loa ʻo ka hoʻopou hou ʻana i nā faila laka ma ke ʻano he ʻāpana o ka loiloi hilinaʻi i hoʻonohonoho ʻia - i kēlā me kēia pule a i ʻole ʻelua pule no nā papahana hana. E hōʻalo i ka hana hou ʻana i nā lockfiles ma kēlā me kēia kūkulu, no ka mea, ua lanakila kēia i kā lākou kumu. E mālama i nā mea hou lockfile e like me nā noi huki e koi ana i ka loiloi, hoʻāʻo, a me ka ʻae ʻia ma mua o ka hoʻohui ʻana i kāu lālā nui.

ʻO ka hoʻokele ʻana i nā hoʻonohonoho kūkulu hou ʻana he ʻāpana o ka puzzle hana nui. Mai ka hoʻokele hilinaʻi a hiki i ka hoʻonohonoho ʻana o ka hui a me ka nānā ʻana i ka lawe ʻana, pono nā hui ʻenekinia hou ma mua o nā mea hana hoʻopuehu - pono lākou i kahi kahua hui. E hui pū me 138,000+ poʻe loea e hoʻohana nei i Mewayz e hoʻomaʻamaʻa i kā lākou hana. E ʻimi i nā hoʻolālā e hoʻomaka ana ma $19/mo a e hoʻomālamalama i kēlā me kēia papa o kāu kaʻina hana ma app.mewayz.com">app.mewayz.com

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime