Qhov kawg tso tawm ntawm Qbs tsim cov cuab yeej tau luam tawm

Qt tuam txhab luam tawm cov cuab yeej sib dhos Qov 1.13 (Qt Build Suite). Qhov no yog qhov tseeb tshaj tawm ntawm Qbs tsim los ntawm Qt Company. Cia peb nco qab tias muaj dab tsi tshwm sim dhau los lees txais kev txiav txim kom tsis txhob tsim Qbs. Qbs tau tsim los ua ib qho kev hloov rau qmake, tab sis thaum kawg nws tau txiav txim siab siv CMake ua lub ntsiab tsim rau Qt hauv lub sijhawm ntev.

Nyob rau yav tom ntej, nws xav tias yuav tsim ib txoj haujlwm ywj pheej los txuas ntxiv kev txhim kho Qbs los ntawm cov zej zog, txoj hmoo uas yuav nyob ntawm qhov kev txaus siab ntawm kev sib dhos hauv cov lus nug los ntawm cov neeg tsim khoom ywj pheej. Qt Lub Tuam Txhab tsis ua haujlwm ntawm Qbs vim xav tau kev nqis peev ntxiv thiab cov nqi siab rau kev txhawb nqa Qbs.

Cia peb nco qab tias txhawm rau tsim Qbs, Qt yuav tsum tau ua raws li kev vam khom, txawm tias Qbs nws tus kheej yog tsim los tsim kev sib dhos ntawm txhua qhov haujlwm. Qbs siv qhov yooj yim version ntawm QML cov lus los txhais cov phiaj xwm tsim cov ntawv, uas tso cai rau koj los txhais cov kev cai tsim kho yooj yim uas tuaj yeem txuas cov qauv sab nraud, siv JavaScript ua haujlwm, thiab tsim cov cai tsim kev cai.
Qbs tsis tsim makefiles thiab nws tus kheej tswj lub community launch ntawm compilers thiab linkers, optimizing cov txheej txheem tsim raws li cov ncauj lus kom ntxaws graph ntawm tag nrho cov dependencies. Lub xub ntiag ntawm thawj cov ntaub ntawv hais txog cov qauv thiab kev vam khom nyob rau hauv qhov project tso cai rau koj mus ua tib zoo parallelize cov kev ua hauj lwm ntawm ob peb threads.

Cov kev hloov tshiab tseem ceeb hauv Qbs 1.13:

  • Ntxiv lub peev xwm los siv pkg-config modules hauv cov haujlwm uas siv tib lub sijhawm ua haujlwm uas siv rau Qbs modules. Piv txwv li, yog tias koj lub kaw lus muaj pob rau lub tsev OpenSSL raws li pkg-config, siv nws hauv Qbs qhov project, tsuas yog ntxiv 'Depends { lub npe: "openssl" }';
  • Ua haujlwm tsis siv neeg tshawb pom ntawm Qt modules muaj. Cov neeg tsim khoom tsis tas yuav tsim ib qho profile nrog cov qauv kev siv cov kev teeb tsa-qt; tag nrho Qt modules teev nyob rau hauv dependencies yuav raug teeb tsa tau;
  • Ntxiv cov cuab yeej los tswj tus naj npawb ntawm cov haujlwm sib dhos ua haujlwm sib luag ntawm qib ntawm tus kheej cov lus txib. Piv txwv li, kev sib txuas tsim ib qho loj I / O load thiab siv ib qho tseem ceeb ntawm RAM, yog li tus linker xav tau kev pib pib sib txawv dua li lub compiler. Cov chaw sib cais tam sim no tuaj yeem teeb tsa siv cov lus txib "qbs -job-limits linker: 2, compiler: 8";
  • Kev hloov pauv tau ua rau cov lus sau. Cov cai tam sim no tuaj yeem txhais tau yam tsis tau hais meej cov ntaub ntawv stub rau cov zis, thiab nws tsis tas yuav siv cov lus qhia "ntshuam qbs" thaum pib ntawm cov ntaub ntawv project. Tshiab nruab thiab installDir cov khoom tau muab ntxiv rau Daim Ntawv Thov, DynamicLibrary thiab StaticLibrary ntsiab kom yooj yim dua installation ntawm cov ntaub ntawv ua tiav;
  • Ntxiv kev txhawb nqa rau recursive scanning ntawm linker scripts
    GNU txuas;

  • Rau C++, cov cuab yeej cpp.linkerVariant tau siv los yuam kev siv cov ld.gold, ld.bfd lossis lld linkers;
  • Qt qhia Qt.core.enableBigResources cov cuab yeej los tsim cov peev txheej Qt loj
  • Hloov chaw ntawm AndroidApk lub caij tsis siv, nws tau thov kom siv hom ntawv thov dav dav;
  • Ntxiv ib qho qauv rau kev tsim cov kev xeem raws li autotest;
  • Ntxiv texttemplate module nrog lub peev xwm zoo ib yam li QMAKE_SUBSTITUTES hauv qmake;
  • Ntxiv kev txhawb nqa thawj zaug rau Protocol Buffers hom rau C ++ thiab Objective-C.

Tau qhov twg los: opennet.ru

Ntxiv ib saib