Saturday, October 15, 2016

Make Statically Linkedin Binary Options

Ek is 'n poging om 'n staties gekoppel weergawe van BBP's te skep, maar is nie in staat om nie. Is dit moontlik om te skep 'n staties gekoppel VIP bevel van die platform ek die opstel op is Ubuntu 16.04. Die opdrag maak Ek hardloop: Ek is nie die instel om dit te luislang of Imagemagick gebruik, (diegene toon geen in die config uitset). Die fout wat ek kry is: Van wat Ive gevind word op byvoorbeeld hier: Skep staties-gekoppelde binêre wat gebruik maak van getaddrinfo is dat dit 'n probleem met libnss. Maar in uitset die Configure help uit te voer is daar geen enable-statiese-vlag. Net so het ek probeer dit en dit didnt my probleem op te los. Die biblioteke ek koppel teen (volgens die config uitset, Ive kapt dit): Is daar 'n spesifieke biblioteek ek koppel teen wat die oorsaak van die probleem wat ek probeer soos volg: En dit blyk te werk: Ive dit nie veel al getoets, en ek vermoed dit is nie baie statiese. As jy LDD op die BBP's binêre hardloop, byvoorbeeld, kry jy 'n lang lys. Ware statiese binaries nie regtig nie meer bestaan ​​nie. Hoekom wil jy 'n statiese binêre As sy verspreiding te verlig, kan dinge soos flatpack en pittig beter. Jy kan ook soort-van jou eie --- byvoorbeeld BBP's kom met 'n eenvoudige wrapper script wat die gedeelde binêre skuif aanvaarde kan maak. VIP's gebruik glad te port help, en glad het 'n klomp goed in. Jy kan probeer om jou eie glad met 'n paar dinge verwyder, kan dit help. Ek dink die statiese binêre sal werk in enige 16.04 installeer, en dit is iets, maar dit waarskynlik wouldn39t werk op 'n baie lae Linux te installeer. OpenWRT 'n libvips pakket en that39s baie minimaal, miskien kan jy dit ndash user894763 27 September aan te pas by 15: 24I 'n aansoek geïnstalleer bv fdisk. Maar dit vereis biblioteke vir uitvoering. Ek is op soek na nut / instrument wat my sal help om 'n statiese binêre van reeds geïnstalleer binaries skep. Sodat ek dit oral kan gebruik. Die enigste betroubare gereedskap wat ek gevind is ErmineLight van hier. maar hierdie een is deel-ware. Is daar enige open-source sagteware is beskikbaar vir dieselfde EDIT fdisk is net 'n voorbeeld. Ek meeste van die tyd werk aan LFS, so as ek enige nut te gebruik, moet ek die stappe soos so tyd net om te red volg, Ek is op soek na 'n oplossing waarin ek 'n statiese binêre sal maak van Debian of vanaf Fedora of uit ander distrbution, probeer dit op LFS, en as dit werk goed of soos per my eis, sal ek gaan met bron-kode vir samestelling. gevra 2 Mei 11 van die 18:38 Wel. dit lyk soos 'n baie slegte idee. Maar, die moontlike. Soos fdisk is open source, net gryp die bron, en kyk na die Make File. Jy moet 'n opsie wat - static sal slaag om gcc by samestelling vind. Ek is nie 'n C / C guru maar sover ek weet die skep van 'n staties-gekoppelde binêre van 'n bestaande dinamies-gekoppelde binêre is nie moontlik nie. As jy wil dit oral gebruik, Id beveel om 'n klein onderhoud verspreiding wat begin binne sekondes te gebruik en laat jou alles verander. Dit maak meer sens vir my, want jy sal waarskynlik wil hê na die skyf die bestuur van jou Linux / UNIX installasie verander. Die skakel werk vir my. Die bladsy het die aantal spelfoute / grammatikale / redaksionele foute wat jy kan verwag van die werk van 'n professionele programmeerder meer as you39d verwag van 'n professionele webwerf, minder as you39d verwag van 'n phishing e-pos. Ongeveer dieselfde as bogenoemde pos, kom om te dink aan dit. Dit lyk verdag dat hierdie splinternuwe gebruiker net sou sluit stapel Exchange op die maat van 'n skakel na wat lyk na 'n splinternuwe webwerf kan lewer. â € G-Man 27 Augustus 15 by 22: 58configure - die bron boom die Konfigureer script instel die bron boom vir die opstel en die installering van die Apache HTTP Server op jou spesifieke platform te stel. Verskeie opsies kan die opstel van 'n bediener wat ooreenstem met jou persoonlike behoeftes. Dit script, ingesluit in die hoofdmap van die bron verspreiding, is vir samestelling op slegs Unix en Unix-agtige stelsels. Vir ander platforms, sien die platform dokumentasie. Sien ook Jy moet die instel script noem vanuit die hoofdmap van die verspreiding. Configure opsie nie. CODA WAARDE. Om omgewing veranderlikes toeken (bv CC. CFLAGS.), Spesifiseer hulle as VAR WAARDE. Kyk hieronder vir die beskrywing van 'n paar van die nuttige veranderlikes. Die volgende opsies beïnvloed die gedrag van instel self. - C Config-kas Dit is 'n alias vir --cache-fileconfig. cache --cache-Lêer Die toetsuitslae sal die kas in Lêer. Hierdie opsie is by verstek afgeskakel. h help uit te voer shortrecursive Uitgawe die hulp en uitgang. Met die argument kort enigste opsies wat spesifiek op hierdie pakket sal vertoon. Die argument rekursiewe vertoon die kort hulp van al die ingesluit pakkette. - n --no-skep die Konfigureer script is gewoonlik hardloop, maar nie uitvoer lêers te skep. Dit is nuttig om die toetsuitslae te ondersoek voordat genereer makefiles vir samestelling. - q --quiet Moenie druk nagaan. boodskappe tydens die instel proses. --srcdir DIR Definieer gids DIR om die bron lêer gids wees. Standaard is die gids waar instel geleë, of die ouer gids. --silent Dieselfde as --quiet - V --version Wys inligting oor kopiereg en uitgang. Hierdie opsies definieer die installasie gids. Die installasie boom hang af van die gekose uitleg. prefix PREFIX installeer argitektuur-onafhanklike lêers in prefix. By verstek die installasie gids is ingestel op / usr / local / Apache2. --exec-voorvoegsel EPREFIX installeer argitektuur-afhanklike lêers in EPREFIX. By verstek die installasie gids is ingestel op die voorvoegsel gids. By verstek, maak installeer sal al die lêers in / usr / local / Apache2 / bin installeer. / Usr / local / Apache2 / lib ens Jy kan spesifiseer 'n installasie voorvoegsel buiten / usr / local / Apache2 behulp prefix. byvoorbeeld --prefixHOME. enable-layout layout Konfigureer die bronkode en skrifte te bou om 'n installasie boom gebaseer op die layout layout aanvaar. Dit laat jou toe om apart spesifiseer die plekke vir elke tipe lêer binne die bediener installasie Apache HTTP. Die config. layout lêer bevat verskeie voorbeeld konfigurasies, en jy kan ook jou eie persoonlike verstellings na aanleiding van die voorbeelde te skep. Die verskillende uitlegte in hierdie lêer is gegroepeer in ltLayout FOOgt. Dit / Layoutgt afdelings en by die naam genoem in FOO. Die standaard uitleg is Apache. Vir 'n beter beheer van die installasie dopgehou, gebruik die onderstaande opsies. Neem asseblief kennis dat die gids standaard deur autoconf gestel en is oorskryf deur die ooreenstemmende uitleg omgewing. --bindir DIR installeer gebruiker executables in r. Die gebruiker executables ondersteun programme soos htpasswd. dbmmanage. ens wat nuttig vir webwerf administrateurs is. By verstek DIR is ingestel op EPREFIX / bin. --datadir DIR installeer read-only argitektuur-onafhanklike data in r. By verstek DataDir is ingestel op PREFIX / share. Hierdie opsie word aangebied deur autoconf en tans ongebruikte. --includedir DIR installeer C kop lêers in r. By verstek includedir is ingestel op EPREFIX / sluit. --infodir DIR installeer info dokumentasie in r. By verstek infodir is ingestel op PREFIX / inligting. Hierdie opsie is tans ongebruikte. --libdir DIR installeer voorwerp kode biblioteke in r. By verstek libdir is ingestel op EPREFIX / lib. --libexecdir DIR Installeer die program executables (maw gedeel modules) in r. By verstek libexecdir is ingestel op EPREFIX / modules. --localstatedir DIR installeer modifiable enkel-masjien data in r. By verstek localstatedir is ingestel op PREFIX / var. Hierdie opsie word aangebied deur autoconf en tans ongebruikte. --mandir DIR installeer die man dokumentasie in r. By verstek Mandir is ingestel op EPREFIX / man. --oldincludedir DIR installeer C kop lêers vir nie-gcc in r. By verstek oldincludedir is ingestel op / usr / sluit. Hierdie opsie word aangebied deur autoconf en tans ongebruikte. --sbindir DIR installeer die stelsel administrateur executables in r. Dit is bediener programme soos httpd. apachectl. suexec. ens wat nodig is om die Apache HTTP Server hardloop. By verstek sbindir is ingestel op EPREFIX / sbin. --sharedstatedir DIR installeer modifiable argitektuur-onafhanklike data in r. By verstek sharedstatedir is ingestel op PREFIX / com. Hierdie opsie word aangebied deur autoconf en tans ongebruikte. --sysconfdir DIR installeer lees-alleen enkel-masjien data soos die bediener konfigurasielêers httpd. conf. mime. types. ens in r. By verstek sysconfdir is ingestel op PREFIX / conf. Hierdie opsies word gebruik om kruis-stel die Apache HTTP Server uit te voer op 'n ander stelsel. In normale gevalle, wanneer die bou van en die bestuur van die bediener op dieselfde stelsel, hierdie opsies word nie gebruik. --build BUILD Definieer die tipe stelsel van die stelsel waarop die gereedskap word gebou. Dit gebreke om die uitslag van die script config. guess. --host HOST Definieer die tipe stelsel van die stelsel waarop die bediener sal loop. Gasheer standaard te bou. --target TEIKEN Konfigureer vir die bou van opstellers vir die tipe stelsel teiken. Dit standaard aan te bied. Hierdie opsie word aangebied deur autoconf en nie nodig vir die Apache HTTP Server. Hierdie opsies word gebruik te verfyn die funksies jou HTTP-bediener sal hê. Oor die algemeen kan jy die volgende opdrag gebruik om in staat te stel of 'n funksie uit te skakel: --disable - FEATURE Moenie funksie. Dit is dieselfde as --enable - geen funksie. --enable - FEATURE ARG Sluit funksie. Die standaard waarde vir ARG is ja. --enable - MODULE gedeel Die ooreenstemmende module sal bou as DSO module. By verstek aangeskakel modules dinamies gekoppel. --enable - MODULE statiese Die ooreenstemmende module sal staties gekoppel. Nota instel sal nie kla oor --enable - cat selfs al cat nie die geval bestaan, sodat jy nodig het om versigtig te tik. Die meeste modules word saamgestel deur verstek en het uitdruklik of deur die gebruik van die term paar te wees afgeskakel (sien enable-modules. Enable-mods-gedeel en enable-mods-statiese hieronder vir verdere verduideliking) of enable - modulesnone te verwyder as 'n groep. Ander modules word nie saamgestel deur verstek en het uitdruklik of deur die gebruik van die term al of reallyall beskikbaar wees om in staat gestel word. Om uit te vind watter modules saamgestel deur verstek, hardloop Configure h of Configure help uit te voer en te kyk onder Opsionele funksies. Veronderstel jy belangstel in modexample1 en modexample2 is. en jy sien dit: Toe modexample1 aangeskakel is by verstek, en jy sal disable-Voorbeeld 1 gebruik om nie saam te stel nie. modexample2 is afgeskakel by verstek, en jy sal enable-Voorbeeld 2 gebruik om dit op te stel. Multi-Processing Modules. of GPP 's, die basiese gedrag van die bediener. 'N Enkele MPM moet aktief wees ten einde vir die bediener te funksioneer. Die lys van beskikbare GPP 's verskyn op die module-indeks bladsy. GPP 's gebou kan word as DSOs vir dinamiese laai of staties gekoppel met die bediener, en in staat gestel word met behulp van die volgende opsies: Kies die verstek MPM vir jou bediener. As GPP 's is gebou as DSO modules (sien enable-GPP' s-Gedeelde), van hierdie richtlijn kies die MPM wat in die verstekwaarde lêer sal gelaai word nie. Anders, hierdie richtlijn kies die enigste beskikbare MPM, wat staties sal gekoppel word in die bediener. As hierdie opsie is weggelaat, sal die verstek MPM vir jou bedryfstelsel gebruik word. Aktiveer 'n lys van GPP 's as dinamiese gedeel modules. Een van hierdie modules moet dinamies gelaai met behulp van die LoadModule richtlijn. MPM-lys is 'n ruimte-geskeide lys van MPM name omring deur aanhalingstekens. Byvoorbeeld: Verder kan jy die spesiale navraag gebruik almal. wat sal al GPP 's wat dinamiese laai ondersteun op die huidige platform te kies en te bou hulle as DSO modules. Byvoorbeeld: Toe te voeg addisionele derde party modules gebruik die volgende opsies: with-module module-tipe. module-lêer, module-tipe. module-lêer Voeg een of meer derde party modules op die lys van staties gekoppel modules. Die module bron lêer module-lêer sal gesoek word in die modules / module-tipe subgids van jou Apache HTTP bediener bron boom. As dit nie daar is gevind instel oorweeg module-lêer om 'n absolute pad van die lêer en probeer om die bron lêer kopieer na die subgids module-tipe. As die subgids nie die geval is bestaan ​​dit sal geskep word en wat gevul is met 'n standaard Makefile. in. Hierdie opsie is geskik vir klein eksterne modules uit een bron lêer voeg. Vir meer komplekse modules moet jy die verkopers dokumentasie te lees. Let As jy wil 'n DSO module in plaas van 'n staties gekoppel gebruik apxs bou. enable-onderhouer-af Skakel ontfouting en stel tyd waarskuwings en laai al saamgestel modules. enable-mods-gedeel MODULE-List definieer 'n lys van modules geaktiveer en bou as dinamiese gedeel modules. Dit beteken, hierdie module moet dinamies deur gebruik te maak van die LoadModule richtlijn gelaai word nie. MODULE-lys is 'n ruimte geskeide lys van modulenames omring deur aanhalingstekens. Die module name gegee word sonder die voorafgaande mod. Byvoorbeeld: enable-mods-sharedheaders herskryf DAV Verder kan jy gebruik maak van die spesiale sleutelwoorde reallyall. almal. die meeste en 'n paar. Byvoorbeeld, sal saamstel meeste modules en bou hulle as DSO modules, sal slegs 'n baie basiese stel modules saamstel. Die standaard stel is die meeste. Die LoadModule riglyne vir die gekose modules sal outomaties gegenereer word in die hoof konfigurasielêer. By verstek, sal al die voorskrifte word kommentaar gelewer het behalwe vir die modules wat óf vereis of uitdruklik gekies deur 'n instel enable-cat argument. Jy kan die stel gelaaide modules verander deur die oopmaak of deaktiveer die LoadModule voorskrifte in httpd. conf. Daarbenewens die LoadModule voorskrifte vir alle ingeboude modules kan geaktiveer word via die instel opsie enable-load-al-modules. enable-mods-statiese MODULE-List Hierdie opsie optree soortgelyk aan enable-mods-gedeel. maar sal die gegewe modules staties skakel. Dit beteken, sal hierdie modules altyd teenwoordig wees terwyl hy loop httpd. Hulle hoef nie gelaai met LoadModule. enable-modules MODULE-List Hierdie opsie optree soos om enable-mods-gedeel. en sal ook dinamiese skakel die gegewe modules. Die spesiale navraag geen versper die bou van alle modules. - Enable-v4 gekarteer Laat IPv6 voetstukke van IPv4 verbindings te hanteer. with-hawe PORT Dit definieer die hawe waarop httpd sal luister. Dit poort nommer word gebruik wanneer die opwekking van die konfigurasielêer httpd. conf. Die verstek is 80. with-program-naam 'n alternatiewe uitvoerbare naam definieer. Die verstek is httpd. Hierdie opsies word gebruik om opsionele pakkette definieer. Oor die algemeen kan jy die volgende opdrag gebruik om 'n opsionele pakket definieer: --with - PAKKET ARG Gebruik die pakket pakket. Die standaard waarde vir ARG is ja. --without - pakket moet die Package gebruik nie. Dit is dieselfde as --with - PAKKET no. Hierdie opsie is verskaf deur autoconf maar nie baie nuttig vir die Apache HTTP Server. with-April DIR Liasseer die Apache Portable Runtime (April) is deel van die httpd bron verspreiding en sal outomaties bou saam met die HTTP-bediener. As jy wil 'n reeds geïnstalleer April plaas gebruik wat jy hoef te vertel die pad instel na die April-config script. Jy kan die absolute pad en naam of die gids aan die geïnstalleer April ingestel. April-config moet bestaan ​​binne hierdie gids of die subgids bin. with-April-util DIR Liasseer die Apache Portable Runtime Nut (APU) is deel van die httpd bron verspreiding en sal outomaties bou saam met die HTTP-bediener. As jy wil 'n reeds geïnstalleer APU plaas gebruik wat jy hoef te vertel die pad instel om die APU-config script. Jy kan die absolute pad en naam of die gids aan die geïnstalleer APU stel. APU-config moet bestaan ​​binne hierdie gids of die subgids bin. with-SSL DIR As modssl is geaktiveer instel soektogte vir 'n geïnstalleerde OpenSSL. Jy kan die gids pad stel om die SSL / TLS toolkit plaas. with-Z DIR instel navrae outomaties vir 'n geïnstalleerde zlib biblioteek as jou bron opset een vereis (bv wanneer moddeflate geaktiveer). Jy kan die gids pad om die kompressie biblioteek plaas stel. Verskeie kenmerke van die Apache HTTP Server, insluitend modauthndbm en ModRewrite s DBM RewriteMap gebruik eenvoudige sleutel / waarde databasisse vir 'n vinnige soektogte van inligting. SDBM is ingesluit in die APU, sodat hierdie databasis is altyd beskikbaar. As jy wil graag ander vorme databasis gebruik, gebruik die volgende opsies om hulle in staat te stel: with-gdbm pad Indien geen pad is gespesifiseer, sal instel soek vir die sluit van lêers en biblioteke van 'n GNU DBM installasie in die gewone search paaie. 'N uitdruklike pad sal veroorsaak instel om te kyk in die pad / lib en pad / sluit vir die betrokke lêers. Ten slotte, kan die pad spesifieke sluit en biblioteek paaie geskei deur 'n dubbelpunt spesifiseer. with-ndbm pad Soos with-gdbm. maar soek 'n Nuwe DBM installasie. with-Berkeley-db pad Soos with-gdbm. maar soek vir 'n Berkeley DB installasie. Let Die DBM opsies word deur die APU en deurgetrek het om sy opset script. Hulle is nutteloos wanneer die gebruik van 'n reeds geïnstalleer APU gedefinieer deur with-April-util. Jy kan meer as een DBM implementering tesame met jou HTTP-bediener. Die bewillig DBM tipe sal ingestel word binne die runtime opset by elke keer. enable-statiese-ondersteuning Bou 'n staties gekoppel weergawe van die ondersteuning program. Dit beteken, 'n stand-alone uitvoerbare gebou sal word met al die nodige biblioteke geïntegreer. Anders sal die ondersteuning binaries is dinamies gekoppel by verstek. enable-suexec Gebruik hierdie opsie om suexec moontlik te maak. wat jou toelaat om uid en gid vir produseer prosesse. Moenie hierdie opsie gebruik nie, tensy jy al implikasies die veiligheid van die bestuur van 'n Suid program op u bediener te verstaan. Verdere opsies om suexec instel word hieronder beskryf. Dit is moontlik om 'n staties gekoppel binêre van 'n enkele ondersteuningsprogram te skep deur gebruik te maak van die volgende opsies: enable-statiese-AB Bou 'n staties gekoppel weergawe van AB. enable-statiese-checkgid Bou 'n staties gekoppel weergawe van checkgid. enable-statiese-htdbm Bou 'n staties gekoppel weergawe van htdbm. enable-statiese-htdigest Bou 'n staties gekoppel weergawe van htdigest. enable-statiese-htpasswd Bou 'n staties gekoppel weergawe van htpasswd. enable-statiese-logresolve Bou 'n staties gekoppel weergawe van logresolve. enable-statiese-rotatelogs Bou 'n staties gekoppel weergawe van rotatelogs. Die volgende opsies gebruik te verfyn die gedrag van suexec. Sien instel en die installering van suEXEC vir verdere inligting. with-suexec-bin Dit definieer die pad na suexec binêre. Standaard is --sbindir (sien verfyn installasie dopgehou). with-suexec-oproeper Dit definieer die gebruiker toegelaat word om suexec noem. Dit moet dieselfde wees as die gebruiker waaronder normaalweg httpd loop wees. with-suexec-docroot Dit definieer die gids boom waaronder suexec toegang word toegelaat vir executables. Standaard waarde is --datadir / htdocs. with-suexec-gidmin definieer dit as die laagste GID toegelaat word om 'n teiken gebruikers vir suexec wees. Die standaard waarde is 100. with-suexec-loglêer Dit definieer die lêernaam van die suexec loglêer. By verstek die loglêer is vernoem suexeclog en is geleë in --logfiledir. with-suexec-safepath definieer die waarde van die omgewingveranderlike PATH om in te lê vir prosesse begin deur suexec. Standaard waarde is / usr / local / bin: / usr / bin: / bin. with-suexec-userdir Dit definieer die subgids onder die gebruikers gids wat al executables waarvoor suexec toegang toegelaat bevat. Hierdie instelling is nodig wanneer jy wil gebruik suexec saam met die gebruiker-spesifieke dopgehou (soos verskaf deur moduserdir). Die verstek is publichtml. with-suexec-uidmin definieer dit as die laagste UID toegelaat word om 'n teiken gebruikers vir suexec wees. Die standaard waarde is 100. with-suexec-Umask Stel Umask vir prosesse begin deur suexec. Dit gebreke om jou stelsel instellings. Daar is 'n paar nuttige omgewing veranderlikes om die keuses gemaak deur instel of om dit te help om biblioteke en programme te vind met standaard name of plekke te omseil. CC definieer die C samesteller opdrag om gebruik te word vir die opstel. CFLAGS Stel C samesteller vlae wat jy wil gebruik vir die opstel. CPP definieer die C preprocessor opdrag om gebruik te word. CPPFLAGS Stel C / C preprocessor vlae, bv - Ek Includedir as jy kop in 'n nie-standaard gids includedir. LDFLAGS Stel linkerkant vlae, bv - L Libdir as jy biblioteke in 'n nie-standaard gids libdir. Nota: hierdie is nie 'n QampA artikel. Kommentaar hier geplaas moet word wys na voorstelle oor die verbetering van die dokumentasie of bediener, en kan weer verwyder word deur ons moderator wanneer hulle óf geïmplementeer of ongeldig geag / off-topic. Vrae oor hoe om die Apache HTTP Server bestuur moet gerig word aan óf ons IRC-kanaal, httpd, op Free Node, of gestuur word aan ons poslyste. Kopiereg 2016 Die Apache Foundation sagteware. Gelisensieer onder die Apache-lisensie, weergawe 2.0.CMake Vrae Algemene inligting en beskikbaarheid Wat is CMake CMake is 'n kruis-platform, open-source make stelsel. CMake word gebruik om die sagteware samestelling proses met behulp van eenvoudige platform-onafhanklike en samesteller-onafhanklike konfigurasielêers te beheer. CMake genereer inheemse makefiles en werkruimtes wat gebruik kan word in die samesteller omgewing van jou keuse. CMake is baie gesofistikeerd: is dit moontlik om komplekse omgewings wat stelsel konfigurasie, voorverwerker geslag, kodegenerasie, en sjabloon Instantiëring ondersteun. Gaan na www. cmake. org/overview~~V om meer oor CMake leer. Wat is die huidige weergawe Die nuutste vrystelling van CMake is altyd beskikbaar by: www. cmake. org/download Van daar is, kan jy haal CMake binaries vir Windows of 'n paar Unix variante, of jy kan die bronkode van CMake aflaai. Jy kan ook toegang tot nag ontwikkeling deur Git sien www. cmake. org/download vir meer inligting. Jy kan ook blaai deur die SVK repository aanlyn. Ek het gevind dat 'n Probleem Wat moet ek doen as jy 'n pleister om by te dra, lees asseblief CONTRIBUTING. rst aan die bokant van die CMake bron boom. Anders, kan jy die fout in ons Bug Tracker: www. cmake. org/Bug Maak seker om te kyk na die ou foute nie om duplikate te sluit, sluit gedetailleerde instruksies van die fout en hoe om dit te reproduseer. Ek wil 'n nuwe funksie in CMake. Wat moet ek doen Rapporteer 'n funksie versoek in ons Bug Tracker www. cmake. org/Bug Maak seker om te kyk na die ou funksie versoeke nie duplikate sluit, sluit gedetailleerde instruksies van die funksie en voorgestelde implementering. Wat is die mees onlangse weergawe gedek deur die bemeestering CMake boek 'n nuwe uitgawe van die bemeestering CMake boek is vrygestel wat dokumenteer CMake 2.6. Die volgende kenmerke is bygevoeg sedert die druk van die boek: Nuwe installeer opdrag (cmake help uit te voer-opdrag installeer) nuwe lys opdrag (cmake help uit te voer-opdrag lys) Opdateer FINDPATH, FINDPROGRAM, en FINDFILE beveel sterker te wees (cmake - Hulp-bevel FINDPATH) RPATH en Mac OS X installname ondersteuning (cmake help uit te voer-opdrag SETTARGETPROPERTIES) CPack Beta (nie klaar of gedokumenteer) EXECUTEPROCESS bygevoeg en vervang EXECPROGRAM Ander veranderinge foutherstellings en interne herstrukturering cMake Waar kan ek nie gesoek CMake Mailing Argief daar bestaan ​​ten minste hierdie kinders: Running CMake Is daar 'n opsie om meer uitgebreide opstel op Make File kragopwekkers te produseer, kan jy die Make File veranderlike vERBOSE stel om 1. byvoorbeeld op UNIX: jy kan ook CMAKEVERBOSEMAKEFILE om oP. Op Windows (nMaak) kan jy ignoreer CMAKEVERBOSEMAKEFILE met behulp Op Unix maak dat jy kan meestal ignoreer verbose af deur gebruik te maak van As jy op Windows met behulp van Borland of nMaak Makefiles, sal jy sien lyne hou: Die rede hiervoor is dat Borland en Microsoft Visual Studio maak programme beperking op die lengte van die opdrag snare. Hulle oorkom hierdie beperking deur die skryf van argumente om die lêer en dan slaag lêer om die program. As jy werklik wil om te sien wat die opdrag lyk, stel CMAKESTARTTEMPFILE en CMAKEENDTEMPFILE om - wees gewaarsku, maar jy kan nie stel dit as veranderlikes op die CMake command line met - D. In plaas daarvan, sien die heel onderkant van die lêer Modules / platform / Windows. cmake en Uncomment die lyne wat hierdie veranderlikes stel om die leë string. Is daar 'n manier om kontrolering van afhanklike biblioteke slaan wanneer die opstel Gebruik die Make File Generator By die gebruik van die Make File kragopwekker onder nix kan jy vinnig voeg / om jou teiken naam. Byvoorbeeld: Onder Windows gebruik 'n agteroorskuinsstreep plaas: Gebruik Visual Studio GT 7.1 As jy Visual Studio 7.1 of groter kan jy die inheemse opsie gebruik om regs kliek op 'n projek en kies om net daardie projek te bou. Die gebruik van Visual Studio Dit 7.0 CMake nie die geval is probeer om al afhanklik biblioteke saam te stel wanneer jy 'n biblioteek op te stel, maar dit sal doen vir binêre teikens. Jy kan nie dit te voorkom maar jy kan neem voordeel van CTRLF7 'n bron lêer vir die geaffekteerde teiken met die hand op te stel en dan Herskakel die teiken deur regs te klik op dit en kies Link. Jy sal hê om te verseker dat al afhanklik biblioteke up-to-date egter gemaak of ly deur Visuals stadige tjek. Ek het 'n cmake veranderlike in my omgewing, maar dit didnt niks verander nie. Hoekom CMake bou instellings word gestoor in die CMake kas wat ooreenstem met 'n projek te bou boom. Hulle word genoem CMake kas inskrywings en het geen betrekking tot jou bevel doppe omgewing veranderlikes. Gebruik 'n CMake GUI (CMakeSetup op Windows of ccmake op UNIX) of die towenaar af (cmake - i) kas inskrywings te wysig. Aanvanklike waardes kan ook gespesifiseer word vir 'n bou met behulp van die - D command line argument te cmake wanneer dit eerste lopie na 'n nuwe gebou boom produseer. Hoe gebruik ek 'n ander samesteller Metode 1: Gebruik omgewing veranderlikes Vir C en C, stel die CC en CXX omgewing veranderlikes. Hierdie metode word nie gewaarborg om te werk vir alle kragopwekkers. (. Spesifiek, as jy probeer om Xcodes GCCVERSION stel hierdie metode verwar Xcode.) Metode 2: gebruik cmake d Stel die toepaslike CMAKEFOOCOMPILER veranderlike (s) om 'n geldige samesteller naam of volledige pad op die opdrag-lyn met behulp van cmake - D . Metode 3 (vermy): gebruik vasgestelde () Stel die toepaslike CMAKEFOOCOMPILER veranderlike (s) om 'n geldige samesteller naam of volledige pad in 'n lys lêer met set (). Dit moet gedoen word voordat enige taal is ingestel (bv voordat enige projek () of opdrag enablelanguage ()). Ek verander CMAKECCOMPILER in die GUI maar dit verander terug op die volgende instel stap. Hoekom keer 'n gebou boom is geskep met 'n gegewe samesteller dit kan nie verander word nie. Daar is 'n verskeidenheid van implementering redes vir hierdie beleid. In CCMake, tik volle paaie is vervelig. Is daar 'n beter manier Sedert CMake 1.6, kan jy die blad voltooiing gebruik in die inskrywings pad in CCMake. Al wat jy doen is tik eerste paar karakters en pers ltTABgt sleutel. CCMake sal die huidige getikte pad te ondersoek en probeer om dit uit te brei na 'n paar bestaande pad. As dit moontlik is, sal dit dit doen. Indien nie, sal dit nie doen nie. Buite-bron te bou bome Wat is 'n out-of-bron te vind wanneer jou bou genereer lêers, hulle het om te gaan. 'N In-bron bou plaas dit in jou bron boom. 'N out-of-bron bou plaas dit in 'n heeltemal aparte gids, sodat jou bron boom is onveranderd. In die eerste voorbeeld, is 'n interne bou uitgevoer, dit wil sê die binaries is in dieselfde gids as die bron-kode geplaas. In die tweede voorbeeld, is 'n out-of-plek bou uitgevoer, dit wil sê die bron-kode, biblioteke, en executables geproduseer in 'n gids apart van die bronkode directory (s). Buite-bron builds word aanbeveel, as jy verskeie variante in 'n aparte dopgehou kan bou, bv HelloBuildDebug, HelloBuildRelease. Let wel: Voor die uitvoering van 'n buite-bron bou, verseker dat alle CMake gegenereer in-bron te bou inligting uit die bron gids, bv CMakeFiles gids, CMakeCache. txt. Ek hardloop 'n out-of-bron bou, maar CMake genereer in-bron in elk geval. Hoekom Dit beteken dat daar 'n CMakeCache. txt lêer in die bron boom, moontlik as deel van 'n bestaande in-bron bou. As CMake die pad gegee om 'n gids met 'n CMakeCache. txt lêer, dit neem die gids is 'n bou boom. Daarom, as een loop cmake. / Mysrc om buite-bron te bou, maar daar is 'n mysrc / CMakeCache. txt lêer dan cmake sal behandel mysrc as die bou boom. Dit is 'n newe-effek van die funksie wat cmake toelaat. moet gebruik word om 'n bou boom regenereer. Die gedrag sal nie verander word nie, want meng in-bron en buite-bron bou is nie veilig in elk geval (ingestel kop te vinde op die verkeerde plek). Waarom CMake gebruik volle paaie, of kan ek kopieer my bou boom CMake gebruik volle paaie omdat: ingestel kop lêers vol paaie kan hê in hulle en beweeg die lêers sonder om weer instel sou upredictable gedrag veroorsaak. omdat cmake ondersteun uit bron bou, is as persoonlike opdragte gebruik relatiewe paaie na die bron boom, hulle sal nie werk nie wanneer hulle hardloop in die bou boom omdat die huidige gids verkeerde sou wees. op Unix sisteme rpaths om gebou te word in executables sodat hulle gedeel biblioteke te hardloop tyd kan vind. As die bou boom verskuif ou executables kan die ou gedeel biblioteke, en nie die nuwes gebruik. Kan die bou boom gekopieer of verskuif Die kort antwoord is NEE. Die rede hiervoor is omdat vol paaie gebruik word in CMake, sien hierbo. Die grootste probleem is dat cmake nodig sou wees om op te spoor wanneer die binêre boom is verskuif en tik. Dikwels wanneer mense wil 'n binêre boom dit is verskuif sodat hulle dit kan versprei na ander gebruikers wat nie cmake in welke geval dit nie sal werk, selfs as cmake die skuif sou spoor kan hê. Die oplossing is om 'n nuwe gebou boom te skep sonder die kopiëring of die verskuiwing van die ou een. CMake nie genereer 'n make distclean teiken. Waarom sommige bou bome geskep met GNU autotools 'n make distclean teiken wat die bou skoon en ook verwyder Makefiles en ander dele van die gegenereerde bou stelsel. CMake nie genereer 'n make distclean teiken omdat CMakeLists. txt lêers skrifte en arbitrêre opdragte kan hardloop CMake het geen manier om die dop presies watter lêers gegenereer as deel van die bestuur van CMake. Die verskaffing van 'n distclean teiken sou gebruikers die valse indruk dat dit sal werk soos verwag gee. (CMake doen genereer 'n make skoon teiken om lêers gegenereer deur die samesteller en linkerkant te verwyder.) 'N stel distclean teiken is slegs nodig indien die gebruiker 'n in-bron bou voer. CMake ondersteun in-bron bou, maar ons raai gebruikers aan die idee van 'n buite-bron bou aanneem. Met behulp van 'n bou boom wat geskei is van die bron boom sal verhoed CMake van die opwekking van enige lêers in die bron boom. Omdat CMake die bron boom nie verander nie, is daar geen behoefte aan 'n distclean teiken. 'N Mens kan 'n vars bou begin deur die verwydering van die bou boom of die skep van 'n afsonderlike gebou boom. (As 'n CMakeLists. txt gebruik ADDCUSTOMCOMMAND om bronkodelêers in die bron boom, nie die bou boom genereer, dan in CMake 2.2 of hoër maak skoon sal hulle te verwyder. Sien volgende vraag.) Running maak skoon nie verwyder persoonlike opdrag uitgange. Hoekom In CMake 2.2 en hoër persoonlike opdrag uitsette moet verwyder word deur julle maak. Maak seker dat jy met behulp van ten minste hierdie weergawe. Voor CMake 2.2 persoonlike opdrag uitgange is nie outomaties bygevoeg aan die lys van lêers om skoon te maak. In CMake 2.0 kan die ontwikkelaar spesifiseer 'n lys van lêers wat geskrap moet word. Dit kan gedoen word met behulp van SETDIRECTORYPROPERTIES opstel eiendom ADDITIONALMAKECLEANFILES om die lys van lêers. Ons is egter ten sterkste aanbeveel met behulp van 'n buite-bron bou wat nooit enige lêers skryf aan die bron boom. Met behulp van 'n afsonderlike bron en boom te bou grootliks verminder die behoefte aan julle maak en maak distclean teikens lêers wat verskil tussen bou weg skoon te maak. Skryf CMakeLists. txt Hoe om agtertoe en vorentoe verenigbaarheid het Vanaf CMake 2.6 ons 'n beleid meganisme om backwards compatibility verskaf diens. Die basiese vereiste vir projekte is om een ​​lyn aan die bokant van die hoogste CMakeLists. txt lêer sluit in: Dit vertel weergawes van CMake ouer is as wat hulle is te oud om die projek te bou. Hulle sal hierdie inligting aan die gebruiker aan te meld. Dit vertel ook weergawes van CMake nuwer as wat bepaal dat die projek nie bewus van die beleid wat in latere weergawes, wat bykomende verenigbaarheid stel kan wees. Vir verdere dokumentasie, sien Hoe kry ek die stroombron of binêre gids Die veranderlike CMAKECURRENTSOURCEDIR bevat die absolute pad na jou huidige bron gids, terwyl CMAKECURRENTBINARYDIR punte om die ekwivalent binêre gids. Hoekom is my CMake veranderlikes nie in die GUI na 'n stel opgedateer Gee bevel aan die kas veranderlikes in die GUI gelys as jy konfigureer druk word gebruik om die waardes gesien deur die kode in CMakeLists. txt lêers inisialiseer. Veranderinge wat deur die kode word gebruik tydens die instel stap en gesien word deur die kragopwekkers, maar is nie terug in die kas gebêre. Byvoorbeeld: sal op sy beurt op die bou van gedeelde biblioteke vir die gids met die opdrag en alle submappen, maar die verandering sal nie verskyn in die GUI. Jy kan die kas en krag opsies op die opdrag stel te gebruik om veranderlikes in 'n manier wat sal weerspieël word in die GUI te verander. Begin om volledige instruksies sien vir die opdrag. Hier is hoe om dit te doen. Dis dit. bou. Dws. Dankie.


No comments:

Post a Comment