Инструменты, используемые FBC
 
Внешние инструменты, на которые компилятор FreeBASIC (FBC) может ссылаться во время процесса компиляции.

Описание

FreeBASIC использует несколько инструментов для компиляции исходного кода в дополнение к fbc компилятору. Точные инструменты, используемые с fbc и каким образом они вызываются, зависят от того, как fbc был сконфигурирован, на какой платформе fbc работает, для какой платформы создается исполняемая программа , и другие опции (как переменные окружения и параметры командной строки).

FreeBASIC (fbc), возможно, был сконфигурирован одним из двух способов: или как автономный (standalone) или снабженный префиксом (Prefixed). Автономная версия ищет каталоги относительно того, где исполняемая программа (fbc) расположена. В версии , снабженной префиксом путь ищется по отношению к префиксу , который жестко задан в компиляторе. Для получения дополнительной информации о конфигурировании FreeBASIC , посмотрите текстовый файл INSTALL, расположенный в каталоге src/compiler исходников FreeBASIC.

Вы можете проверить, автономна(standalone) ваша установленная версия fbc или "снабжена префиксом" ("prefixed"), вызывая fbc с параметром -version  в командной строке.

Standalone
Если fbc был сконфигурирован как "автономный", он будет искать файлы относительно того, где fbc расположен. fbc в "вершине" дерева каталогов и ищет подкаталоги ниже его. "Главный" каталог (по умолчанию где fbc расположен) может быть переопределен с помощью параметра командной строки  -prefix. "topdir", показанный как каталог ниже, представляет каталог, где fbc расположен, или каталог, определенный с помощью параметра -prefix. "<target>" относится к целевой платформе, имеющей то же имя, как определено с помощью опции -target.

Если это не кросс-компиляция, fbc смотрит в этих расположениях:
    • /topdir/inc
    • /topdir/lib/<target>
    • /topdir/bin/<target>
    • gcc запрашивает недостающие библиотеки (в настоящее время на Linux / FreeBSD только)

Если это кросс-компиляция, fbc смотрит в этих расположениях:
    • /topdir/inc
    • /topdir/lib/<target>
    • /topdir/bin/<target>
    • gcc ничего не запрашивает (только целевой каталог с библиотеками используется)

Prefixed
Если fbc был сконфигурирован, как "prefixed", он будет искать файлы относительно сконфигурированного префикса (жестко задано в fbc). "prefix", показанный как каталог ниже, представляет сконфигурированный префиксом каталог или каталог, определенный с помощью параметра командной строки -prefix. "<target>" относится к целевой платформе, имеющей то же имя, как определено с помощью опции -target.

Если это не кросс-компиляция, fbc смотрит в этих расположениях:
    • /prefix/include/freebasic
    • /prefix/lib/freebasic/<target>
    • /prefix/bin/freebasic/<target>
    • gcc запрашивает недостающие библиотеки (в настоящее время на Linux / FreeBSD только)

Если это кросс-компиляция, fbc смотрит в этих расположениях:
    • /prefix/include/freebasic
    • /prefix/lib/freebasic/<target>
    • /prefix/bin/freebasic/<target>
    • gcc ничего не запрашивает (только целевой каталог с библиотеками используется)

GCC Запросы
Если fbc неспособен определить местоположение файла, он может вызвать gcc -print-file-name=<file>, чтобы запросить расположение файла. Ниже приведены файлы, которые могут быть расположены с использованием GCC:
    • crt1.o
    • crtbegin.o
    • crtend.o
    • crti.o
    • crtn.o
    • gcrt1.o
    • libgcc.a
    • libsupc++.a
    • libc.so (Linux только)

Поиск бинарных файлов
fbc вызывает дополнительные инструменты (двоичные исполняемые программы) как часть компиляции и процесса линковки. Ниже представлен список инструментов , которые могут быть вызваны fbc в зависимости от платформы, цели или типа исполняемой программы или библиотеки, которая будет собрана:
    • as
    • ar
    • ld
    • gcc
    • GoRC
    • dlltool
    • pexports
    • cxbe

FBC будет искать эти инструмены следующим образом:
    • Если переменная окружения (в которой указано то же имя как и у инструмента без какого-либо расширения, в верхнем регистре) была установлена, то это явно указывает путь и имя исполняемой программы, которая будет вызвана.
    • Если файл (или символическая ссылка) существует в prefix/bin/freebasic/<target>, или ./bin/<target> для версии standalone , тогда используется это.
    • В Linux, если инструмент не может быть найден в prefix/bin/freebasic/<target>, или ./bin/<target> для версии standalone, fbc пытается вызвать его по любому, поскольку это может быть установлено в системе и расположено в PATH.

"<target>" относится к целевой платформе, имеющей то же имя, как определено с помощью опции -target.

См. также