EngelsFransSpaans

Ad


OnWorks-favicon

include_server - Online in de cloud

Voer include_server uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht include_server die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


include_server.py - conservatieve benadering van include-afhankelijkheden voor C/C++

KORTE INHOUD


include_server --haven INCLUDE_SERVER_PORT [OPTIES]

PRODUCTBESCHRIJVING


include_server.py start een include-serverproces. Dit proces beantwoordt vragen van
distcc(1) klanten over welke bestanden moeten worden opgenomen in C/C++-compilaties. De include_server.py
commando zelf eindigt zodra de include-server is voortgebracht.

Het INCLUDE_SERVER_PORT argument is de naam van een socket die voor alle communicatie wordt gebruikt
tussen distcc-clients en de include-server. De distcc-pomp(1) commando is verantwoordelijk
voor het maken van de socketlocatie, voor het doorgeven aan dit script en voor het doorgeven aan iedereen
distcc-clients via de omgevingsvariabele genaamd INCLUDE_SERVER_PORT.

Het protocol dat door de include-server wordt gebruikt, maakt gebruik van de RPC-implementatie van distcc. Elke distcc
request bestaat uit (1) de huidige map en (2) de lijst met argumenten van de
compilatie commando.

Als de include-server het verzoek kan verwerken, antwoordt deze de distcc-client met
een lijst met bestandspaden verzenden. De bestandspaden zijn die van de gecomprimeerde broncode en header
bestanden die nodig zijn gebleken voor compilatie via include-analyse. De lijst ook
bevat symbolische links en zelfs dummy-bestanden die de compilatieserver nodig heeft
construeer een nauwkeurige replica van de delen van het bestandssysteem die nodig zijn voor compilatie. In
op deze manier wordt een benodigd headerbestand zoals /path/foo.h gecomprimeerd, hernoemd en opgeslagen in een
tijdelijke locatie, zoals /dev/shm/tmpiAvfGv.include_server-9368-1/path/foo.h.lzo. De
distcc-client zal deze bestanden doorgeven aan een compilatieserver, waar ze zullen zijn
ongecomprimeerd en tijdelijk gemonteerd.

Als de include-server het verzoek niet kan verwerken, retourneert deze de lege lijst
naar de distcc-client.

Er zijn twee soorten fouten die betrekking hebben op de include-server. De include-server kan
er niet in slagen om de inclusies te berekenen of op andere manieren falen, zie sectie BEVATTEN SERVER Symptomen.
Ook kan de compilatie op de verwijderserver mislukken vanwege een ontoereikendheid van de berekende
sluit afsluiting in, maar slaagt vervolgens wanneer het lokaal opnieuw wordt geprobeerd, zie sectie DISTCC VERSCHIL
Symptomen.

OPTIE OVERZICHT


De volgende opties worden begrepen door include_server.py.

-dPAT, --debug_pattern=PAT
Bitvector voor het inschakelen van waarschuwingen en foutopsporing
1 = waarschuwingen
2 = traceer enkele functies
andere machten van twee: zie include_server/basics.py.

-e, --e-mail
Stuur een e-mail naar 'distcc-pump-errors' of, indien gedefinieerd, de waarde van de omgevingsvariabele
DISTCC_EMAILLOG_WHOM_TO_BLAME, wanneer de include-server in de problemen komt. De standaardwaarde is
om geen e-mail te verzenden.

--email_gebonden NUMMER
Maximaal aantal te verzenden e-mails (naast een laatste e-mail). Standaard: 3.

--geen e-mail
Stuur geen e-mail. Dit is de standaardinstelling.

--path_observation_re=RE
Geeft een waarschuwingsbericht weer wanneer een bestandsnaam wordt omgezet in een realpath dat overeenkomt
door RE, wat een reguliere expressie is in de Python-syntaxis. Dit is handig bij het vinden
waar de opgenomen bestanden daadwerkelijk vandaan komen. Gebruik RE="" om ze allemaal te vinden. Opmerking:
waarschuwingen moeten worden ingeschakeld met minimaal -d1.

--pid_bestand BESTANDSPAD
De pid van de include-server wordt naar bestand FILEPATH geschreven. Dit maakt een script mogelijk
zo'n distcc-pomp om de include-server af te breken.

-Ja, --statistieken
Druk informatie af om meer te weten te komen over onder meer analyse.

--stat_reset_triggers=LIJST
Statistische caches leegmaken wanneer de tijdstempel van een bestandspad in LIST verandert of de
bestandspad bestaat of verdwijnt. LIST is een door dubbele punten gescheiden reeks van
bestandspaden, die mogelijk eenvoudige globs bevatten (zoals toegestaan ​​door de glob-module van Python).
Druk een waarschuwing af wanneer een dergelijke wijziging plaatsvindt (als waarschuwingen zijn ingeschakeld). Dit
optie staat beperkte uitzonderingen toe op de normale aanname van distcc-pump die bron
bestanden worden tijdens de build niet gewijzigd.

-T, --tijd
Verstreken afdruktijd, gebruikers- en systeemtijd naar stderr.

--unsafe_absolute_includes
Voer voorbewerking uit op de compilatieserver, zelfs als er absolute bestandspaden in voorkomen
worden aangetroffen. Normaal gesproken zal de include-server terugvallen op lokale voorverwerking
als er absolute omvat wordt gedetecteerd. Deze vlag is dus nuttig om dit te voorkomen
fallbacks wanneer het absolute omvat een vals alarm zijn, ofwel omdat het absolute
include wordt weggegooid tijdens de voorbewerking of omdat het absoluut opgenomen bestand is
bestaat op de compilatieservers.

Preciezer gezegd, met --unsafe_absolute_includes worden absolute include-waarden genegeerd
de doeleinden van het verzamelen van de sluiting omvatten. Het gebruik van deze optie kan leiden tot
onjuiste resultaten omdat (1) de header daadwerkelijk is opgenomen in de
compilatieserver en deze is mogelijk niet hetzelfde als op de client, (2) de include
richtlijnen van de header worden niet verder geanalyseerd.

De optie is handig voor het compileren van code met dergelijke hardgecodeerde absolute locaties
van headerbestanden binnen voorwaardelijke richtlijnen (bijvoorbeeld "#ifdef") die de
omvat niet relevant. Om precies te zijn, deze omvat moet worden geëlimineerd tijdens
voorbewerking voor de daadwerkelijke configuratie. Dan de vraag naar het bestaan ​​van de
header-bestand is betwistbaar en de externe compilatie is goed. Dit is vaak het geval als
dergelijke omvat zijn bedoeld voor ongebruikelijke configuraties die verschillen van de werkelijke
configuratie.

-in, --verifiëren
Controleer of bestanden in CPP-afsluiting zijn opgenomen in de afsluiting, berekend door include
processor.

-w, --write_include_closure
Schrijf een .d_cab-bestand waarin alle opgenomen bestanden worden vermeld, berekend door de include
server; schrijf met -x bovendien de meegeleverde bestanden zoals berekend door CPP naar a
.d_exact-bestand.

-X, --exacte_analyse
Gebruik in plaats daarvan CPP en laat systeemheaderbestanden niet weg.

BEVATTEN SERVER Symptomen EN KWESTIES


De meest waarschijnlijke berichten en waarschuwingen die van de include-processor afkomstig zijn, worden hieronder vermeld.

Voorverwerking lokaal. omvatten server niet aan het bedekken: Kon niet bepalen verzuim system
omvatten directories
Om de standaard systeemheadermappen te bepalen, voert de include-server het bestand
compiler één keer voor elke taal die nodig is tijdens de sessie. Dit bericht geeft aan
dat de compiler die is opgegeven voor distcc niet aanwezig is op de client.

Voorverwerking lokaal. omvatten server niet aan het bedekken: Bailen uit omdat omvatten server
besteed meer neem contact ...S gebruiker niet de tijd of behandeling te vragen
In ongebruikelijke situaties slaagt de include-server er niet in om zeer gecompliceerde macro's te analyseren
uitdrukkingen. De distcc-client gebruikt de gewone distcc-modus.

Waarschuwing: Bestandspad Dan moet je be relatief maar is niet
De include-server accepteert geen absolute bestandspaden, zoals
/usr/include/stdio.h, in include-richtlijnen, omdat daar geen garantie voor is
deze header op de compilatieservermachine zal dezelfde zijn als die op de
cliënt. De include-server stopt met het analyseren van de include-sluiting. De distcc
cliënt kan de pompmodus niet gebruiken.

Om dit probleem op een niet altijd betrouwbare manier op te lossen, stelt u de omgevingsvariabele in
INCLUDE_SERVER_ARGS='--unsafe_absolute_includes' bij het aanroepen van de distcc-pump
script om de optie --unsafe_absolute_includes door te geven aan de include-server.

Waarschuwing: absoluut bestandspad ... was BUITEN BESCHOUWING GELATEN
De --unsafe_absolute_includes is in gebruik. Deze situatie doet zich onder hetzelfde voor
omstandigheden zoals wanneer "Bestandspad moet relatief zijn maar dat niet is" wordt uitgegeven, maar hierin
In dat geval zal de include een antwoord bieden aan de distcc-client.

Waarschuwing: Pad '/PAD/BESTAND' veranderd/kwam in bestaan/nr langer bestaat
Deze waarschuwingen worden gegeven bij het gebruik van triggers voor het resetten van statistieken. Omdat /PATH/BESTAND
gewijzigd, wist de include-server zijn caches; de nieuwe versie van het bestand (of de
gebrek daaraan) maakt de include-analyse ongeldig. Dit bericht kan meestal zijn
buiten beschouwing gelaten; het duidt wel op een enigszins precair gebruik van bestanden door het bouwsysteem.
Het wordt aanbevolen om het buildsysteem zo te repareren dat bestanden niet worden herschreven.

Waarschuwing: Voor vertaling eenheid ..., lookup of filet ... opgelost naar ... waarvan echt pad is
...
Deze waarschuwing treedt op bij --path_observation_re wanneer een nieuw realpath overeenkomt met a
bron- of headerbestand wordt waargenomen.

DISTCC VERSCHIL Symptomen


De interacties tussen het buildsysteem, distcc en de include-server zijn enigszins
complex. Wanneer een distcc-opdracht een mislukte compilatie ontvangt van de externe server
probeert de compilatie lokaal opnieuw uit te voeren. In dit onderdeel worden de oorzaken van afwijkingen besproken
tussen externe en lokale compilatie. Deze worden gemarkeerd door het degradatiebericht:

__________Waarschuwing: ... pomp-modus compilatie(s) mislukt on server, maar geslaagd lokaal.
__________Distcc-pomp was gedegradeerde naar vlakte modus. Bekijk de Distcc tegenstrijdigheid Symptomen
sectie in de include_server(1) man pagina.

Het distcc-pump-script geeft dit bericht weer aan het einde van de build. Dit betekent dat voor op
ten minste één distcc-aanroep van een lokale compilatie is geslaagd na de externe compilatie
mislukt. Elke distcc-aanroep waarvoor een dergelijke discrepantie optrad, levert op zijn beurt ook een
bericht zoals:

Waarschuwing: vanop compilatie of '...' mislukt, opnieuw geprobeerd plaatselijk en kreeg a anders resultaat.

De degradatie zorgt ervoor dat volgende distcc-aanroepen de gewone distcc-modus gebruiken. Dus
voorverwerking zal plaatsvinden op de lokale machine gedurende de rest van de build. Dit
techniek voorkomt zeer langzame builds waarbij alle compilaties op de lokale machine terechtkomen
nadat het op afstand mislukt is.

Als de lokale compilaties mislukken na de externe fouten, dan zal het bestand distcc
de aanroep wordt afgesloten met de niet-nulstatus van de lokale compilatie. De foutmeldingen
afgedrukt zijn ook die van de lokale compilatie.

Het terugvalgedrag voor de distcc-pump-modus naar lokale compilatie kan worden uitgeschakeld door setting
de omgevingsvariabele DISTCC_FALLBACK op 1 zetten, waardoor de opdracht distcc zo snel mislukt
omdat de externe compilatie is mislukt. Deze instelling is erg handig voor het opsporen van waarom de
externe compilatie ging mis, omdat nu de uitvoer van de server wordt afgedrukt.

Vervolgens bespreken we de mogelijke oorzaken van afwijkingen.

De gebruiker veranderd a (bron) or hoofd filet gedurende de bouwen.
Dit levert uiteraard inconsistente resultaten op.

A (bron) or hoofd filet veranderd gedurende de bouwen.
Het buildsysteem herschrijft een bestand. Voor Linux kernel 2.6 gebeurt dit voor
'include/linux/compile.h' en 'include/asm/asm-offsets.h'. Deze voorwaarde staat vast
door de include-server te laten weten dat hij zijn caches moet resetten als er een statistiek van iets is
van de bestanden verandert. In de praktijk gebeurt dit door de bestanden in een dubbele kolom te verzamelen.
gescheiden lijst en stel vervolgens de opdracht INCLUDE_SERVER_ARGS in als in:

include_server_args="--stat_reset_triggers=include/linux/compile.h:include/asm/asm-
offsets.h"

A hoofd filet is mogelijk inbegrepen, maar doet niet bestaan, en is harte later inbegrepen.

Dit gebeurt wanneer een header foo.h een ander headerbestand trick.h bevat, maar de
trick.h-bestand is nog niet gegenereerd en de opname wordt feitelijk genegeerd
vanwege voorverwerkingsrichtlijnen. De include-server zal zoeken naar de
bestaan ​​van trick.h, omdat het alle mogelijke richtlijnen overschat
daadwerkelijk evalueren. Er is vastgesteld dat het bestand trick.h niet bestaat. Als het later is
gegenereerd en vervolgens werkelijk opgenomen, dan zal de include-server ten onrechte geloven
dat het bestand nog steeds niet bestaat. De oplossing voor dit probleem is om de
build-systeem genereert trick.h voordat er voor de eerste keer een headerbestand wordt opgenomen
dat maakt een syntactische verwijzing naar trick.h

De omvatten server was gestart Met --unsafe_absolute_includes.
Dit is een probleem als er lokaal headerbestanden zijn die op afstand niet bestaan
die daadwerkelijk worden gebruikt. Dergelijke omvat vaak beschermd door voorwaardelijke
richtlijnen die evalueren zodat ze feitelijk alleen specifiek en vaak worden gebruikt
ongebruikelijke platforms. Als u niet voor een dergelijk platform compileert, dan kan dat wel het geval zijn
juist te gebruiken --unsafe_absolute_include.

De omvatten server heeft berekend de verkeerd omvat.
Een dergelijke situatie is ons niet bekend.

EXIT CODES


De afsluitcode van include_server.py is meestal 0. Dat de include-server is gestart
correct wordt gecommuniceerd via het bestaan ​​van het pid_file.

MILIEU VARIABELEN


DISTCC_EMAILLOG_WHOM_TO_BLAME Het te gebruiken e-mailadres voor het automatisch opnemen van de server
e-mails. De standaardwaarde is 'distcc-pump-errors' (wat een e-mailadres is dat waarschijnlijk wel zal voorkomen
bestaat niet in uw domein).

Bovendien kan de aanroep van de compiler aanvullende omgevingsvariabelen gebruiken.

Gebruik include_server online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    Phaser
    Phaser
    Phaser is een snelle, gratis en leuke open
    source HTML5-gameframework dat biedt
    WebGL- en Canvas-weergave overdwars
    desktop- en mobiele webbrowsers. Spellen
    kan samen zijn...
    Phaser downloaden
  • 2
    VASSAL-motor
    VASSAL-motor
    VASSAL is een game-engine om te creëren
    elektronische versies van traditioneel bord
    en kaartspellen. Het biedt ondersteuning voor
    weergave en interactie van speelstukken,
    en...
    VASSAL-engine downloaden
  • 3
    OpenPDF - Vork van iText
    OpenPDF - Vork van iText
    OpenPDF is een Java-bibliotheek voor het maken van
    en het bewerken van PDF-bestanden met een LGPL en
    MPL open source-licentie. OpenPDF is de
    LGPL/MPL open source opvolger van iText,
    een...
    Download OpenPDF - Vork van iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Systeem voor geautomatiseerd
    Geowetenschappelijke analyses - is een geografische
    Informatie Systeem (GIS) software met
    enorme mogelijkheden voor geodata
    verwerking en analyse...
    SAGA GIS downloaden
  • 5
    Toolbox voor Java/JTOpen
    Toolbox voor Java/JTOpen
    De IBM Toolbox voor Java / JTOpen is een
    bibliotheek van Java-klassen die de
    client/server- en internetprogrammering
    modellen naar een systeem met OS/400,
    i5/OS, o...
    Toolbox voor Java/JTOpen downloaden
  • 6
    D3.js
    D3.js
    D3.js (of D3 voor gegevensgestuurde documenten)
    is een JavaScript-bibliotheek waarmee u
    om dynamische, interactieve gegevens te produceren
    visualisaties in webbrowsers. Met D3
    u...
    D3.js downloaden
  • Meer "

Linux-commando's

  • 1
    abidiff
    abidiff
    abidiff - vergelijk ABI's van ELF-bestanden
    abidiff vergelijkt de Application Binary
    Interfaces (ABI) van twee gedeelde bibliotheken
    in ELF-formaat. Het straalt een betekenis uit
    verslag...
    Voer abidiff uit
  • 2
    blijf
    blijf
    abidw - serialiseer de ABI van een ELF
    bestand abidw leest een gedeelde bibliotheek in ELF
    formaat en verzendt een XML-representatie
    van zijn ABI naar standaarduitvoer. De
    uitgestoten ...
    Voer abidw uit
  • 3
    copac2xml
    copac2xml
    bibutils - conversie van bibliografie
    nutsvoorzieningen ...
    Voer copac2xml uit
  • 4
    Copt
    Copt
    copt - kijkgaatje-optimizer SYSNOPIS:
    copt-bestand.. BESCHRIJVING: copt is een
    kijkgaatje-optimizer voor algemeen gebruik. Het
    leest code van zijn standaardinvoer en
    schrijft een...
    Kopt uitvoeren
  • 5
    collect_stx_titles
    collect_stx_titles
    collect_stx_titles - titel verzamelen
    verklaringen van Stx-documenten ...
    Voer collect_stx_titles uit
  • 6
    gatling-bank
    gatling-bank
    bank - http-benchmark ...
    Run gatling-bank
  • Meer "

Ad