Autoværktøjer

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 27. januar 2018; checks kræver 13 redigeringer .

Autotools ( MFA [ ˈ ɔ ː t ə ʊ t u ː l z ]; fra  engelsk  - " autotools  ") er GNU - projektbygningssystemet , et sæt softwareværktøjer designet til at understøtte portabilitet af programkildekode mellem UNIX-lignende systemer [ 1] .

Portering af kode fra et system til et andet kan være en skræmmende opgave. Forskellige implementeringer af C-kompileren kan variere betydeligt: ​​nogle sprogfunktioner kan mangle, have et andet navn eller være i forskellige biblioteker. Programmøren kan løse dette problem ved at bruge makroer og præprocessor-direktiver, for eksempel #ifog #ifdefandre. Men i dette tilfælde skal brugeren, der kompilerer programmet på sit system, definere alle disse makroer, hvilket ikke er så nemt, da der er mange forskellige distributioner og systemvariationer. Autoværktøjer kaldes af en række kommandoer ./configure && make && make installog løser disse problemer automatisk.

GNU Autotools byggesystem er en del af GNU værktøjskæden og er meget brugt i mange open source projekter . Byggeværktøjerne distribueres under GNU General Public License og kan bruges i kommercielle projekter [3] .

Komponenter af GNU Autotools

Byggeværktøjerne inkluderer Autoconf , Automake og Libtool [4] . Andre værktøjer, der bruges med GNU Autotools, er make , gettext , pkg-config og selvfølgelig GCC og binutils .

Autoconf læser filen configure.ac(eller en ældre configure.in ) og genererer et konfigurationsscript kaldet configure. Autoconf bruger GNU-implementeringen af ​​m4 -makrosproget til at behandle filer .

Det genererede konfigurationsscript køres af brugeren. Scriptet læser filer med filtypenavnet " " .inf.eks Makefile.in. behandler dem (finder ud af alle funktionerne i systemet) og får det endelige resultat - Makefile.

Autoconf bruger nogle hjælpeprogrammer, der er skrevet for at gøre tingene lettere. For eksempel arbejder Autoheader med header-filer , autoscan undersøger koden for typiske portabilitetsproblemer og opretter initialen configure.ac.

GNU Automake

Automake læser filerne Makefile.amog opretter en bærbar Makefile, dvs. Makefile.in, som derefter, efter at være blevet behandlet af konfigurationsscriptet, bliver og bruges af makeMakefile -værktøjet .

GNU libtool

Libtool styrer oprettelsen af ​​statiske og dynamiske biblioteker på forskellige UNIX-lignende operativsystemer.

Gnulib

Gnulib forenkler processen med at skabe bærbare programmer ved hjælp af Autoconf og Automake.

Begrænsninger af GNU byggeværktøjer

Byggeværktøjerne bruger sh- scripts til tilpasning på byggetidspunktet.

Byggeværktøjerne kan bruges både til at skabe programmer til den samme arkitektur, som der bygges på, og til at krydskompilere til en anden arkitektur. [1] . Det er også muligt at konfigurere en build til at kompilere på Windows ved hjælp af MinGW eller ved at installere Cygwin eller MSYS oven på Windows for at give det nødvendige niveau af kompatibilitet til at køre konfigurationsscriptet.

Byggeværktøjerne og opsætningsscriptet har en tendens til at være langsomme, fordi de kalder forskellige programmer, såsom C-kompileren, mange gange for at kontrollere tilstedeværelsen af ​​forskellige biblioteker, header-filer og sprogfunktioner.

Se også

Fodnoter

  1. GNU Build System dokumentation . Dato for adgang: 9. januar 2011. Arkiveret fra originalen 23. december 2010.
  2. libtool HACKING Arkiveret 21. juli 2011 på Wayback Machine inklusive alle relevante licensundtagelser
  3. At lære GNU-udviklingsværktøjerne: Forord . Hentet 6. november 2010. Arkiveret fra originalen 1. december 2010.

Eksterne links