Nástroje používané kompilátorem FreeBasic
 
Externí nástroje může FreeBASIC kompilátor (FBC) vyvolat během kompilace.
Legenda:  Prefix - Předpona, target - cílový adresář, topdir - nejvyšší adresář

Popis

FreeBASIC používá několik externích nástrojů pro kompilaci zdrojového kódu FBC kompilátorem. Které nástroje to přesně jsou a jak jsou uplatňovány, závisí na tom, jak byl FBC nakonfigurován hostitelskou platformou (kde FBC běží), cílovou platformou (kde poběží vyprodukovaný spustitelný program) a dalších možnostech (jako proměnné OS a volby příkazového řádku).

FreeBASIC (FBC) může být konfigurován jedním ze dvou způsobů: Samostatně, nebo s prefixem (předponou). Samostatná verze hledá adresáře relativně k místu, kde se nachází spustitelný soubor. Verze s prefixem má 'hardcoded' cestu nakonfigurovánu v kompilátoru. Tato pak označuje, kde se dá najít další přidané nástroje a knihovny. Pro více informací o konfiguraci FreeBASIC čtěte INSTALL, textový soubor nacházející se v adresáři src/compiler, adresáři FreeBASIC zdrojů.

Můžete si zkontrolovat, zda je vaše instalace FBC "standalone" (samostatná) nebo "prefixed" (s prefixem) vyvoláním FBC volbou příkazového řádku s přepínačem -version.

Samostatný (standalone)
Pokud byl FBC nakonfigurován jako 'standalone', bude vyhledávat soubory ve vztahu k místu, kde se nachází spustitelný soubor FBC. FBC Je v 'horní' části adresářového stromu a prohledává podadresáře pod ním. Název 'Top' adresáře (výchozí hodnota je umístění FBC) může být přepsána použitím možnosti příkazového řádku -prefix.
"topdir" uvedený v adresářích níže reprezentuje adresář, kde se nachází spustitelný soubor FBC, nebo adresář zadaný volbou příkazového řádku -prefix (pokud byla použita).
"<target>" (cíl) odkazuje na cílovou platfomu, která má stejný název jaký zadáte (chcete-li) volbou příkazového řádku -target.

Pokud není použita křížová (meziplatformní) kompilace, FBC prohlíží tato umístění:
    • /topdir/inc
    • /topdir/lib/<target>
    • /topdir/bin/<target>
    • GCC je dotázána na chybějící knihovny (v současnosti jen na Linux/FreeBSD)

Při křížové kompilaci, FBC prohlíží tato umístění:
    • /topdir/inc
    • /topdir/lib/<target>
    • /topdir/bin/<target>
    • GCC není dotazována (pouze je použit target adresář knihovny)

S předponou (prefixed)
Je-li FBC nakonfigurován jako "prefixed", bude vyhledávat soubory vzhledem k nakonfigurovanému prefixu (napevno ve spustitelném FBC). "prefix" uvádí, ve kterých podřízených adresářích specifikovaných pomocí volby příkazového řádku -prefix (pokud byla použita) se nachází podpůrné soubory FBC. "<target>" odkazuje na cílovou platformu, jejíž vlastnosti se stanovují použitím volby příkazového řádku -target.

Pokud není použita křížová kompilace, FBC hledá v těchto umístěních:
    • /prefix/include/freebasic
    • /prefix/lib/freebasic/<target>
    • /prefix/bin/freebasic/<target>
    • GCC je dotázána na chybějící knihovny (v současnosti jen na Linux/FreeBSD)

Při křížové kompilaci FBC hledá v těchto umístěních:
    • /prefix/include/freebasic
    • /prefix/lib/freebasic/<target>
    • /prefix/bin/freebasic/<target>
    • GCC není dotazována (pouze je použit target adresář knihovny)

GCC dotazy
Pokud FBC nemůže najít některý z potřebných souborů, může vyvolat GCC -print-file-name=<file> - dotaz na umístění souboru. Následují soubory, které mohou být lokalizovány pomocí GCC:
    • crt1.o
    • crtbegin.o
    • crtend.o
    • crti.o
    • crtn.o
    • gcrt1.o
    • libgcc.a
    • libsupc++.a
    • libc.so (Linux only)

Vyhledání binárek
FBC vyvolává další nástroje (binární spustitelné soubory) jako součást kompilačních a propojujících procesů (linking process). Následuje seznam nástrojů (spustitelných souborů), které mohou být vyvolány FBC v závislosti na hostitelské platformě, cílové platformě, typu spustitelného souboru nebo na knihovnách, které mají být použity či vyrobeny:
    • as
    • ar
    • ld
    • gcc
    • GoRC
    • dlltool
    • pexports
    • cxbe

FBC bude hledat tyto nástroje následujícím způsobem:
    • Je-li nastavena proměnná prostředí (mající stejný název jako nástroje bez jakéhokoliv rozšíření) pro volání, explicitně označující cestu a název spustitelného souboru, pak je zavolána.
    • Pokud existuje soubor (nebo symbolický odkaz) v prefix/bin/freebasic/<target>, nebo ./bin/<target> pro 'standalone' verzi, pak se použije.
    • Na Linuxu, pokud nemohl být nástroj nalezen v prefix/bin/freebasic/<target>, nebo ./bin/<target> pro 'standalone' verzi, snaží se FBC tak jako tak vyvolat nástroje tím, že je vyhledává ve standardních místech instalací, čímž je většinou najde. (pozn.překl. při chybějící knihovně v systému mi vyjela hláška, že ji mám doinstalovat a jak, takže bez problémů (v Trusty))

"<target>" odkazuje na cílovou platformu, která má stejný název, jaký je specifikován volbou -target.

Viz též
Překlad: Gmisiycs 16.2.2016