fbc хранит дополнительную информацию в объектных файлах (.o), это
генерируется, для того, чтобы считать все снова во время компоновки.
Информация, которая хранится в настоящее время, состоит из -lang/-mt
параметров настройки и всех библиотек/путей поиска (-l, #inclib,-p, #libpath),
которые были определены при компиляции того объектного файла. Таким образом
FBC может показать предупреждение при смешивании объектных файлов, которые
были скомпилированы с различными вариантами, потому что они могут быть
несовместимы, и FBC может автоматически связывать в библиотеках, которые
были указаны с помощью # inclib, даже если пользователь компилирует все из
отдельных шагов.
Это выполняется при выпуске дополнительного раздела, названного "fbctinf"
(информация о времени компиляции FreeBASIC?), при компиляции, и чтении его
обратно во время компоновки. Кроме того, при создании статической
библиотеки, fbc создает дополнительный объектный файл (вызов __ fb_ct.inf)
содержащий просто дополнительную информацию и добавляет его к библиотеке. Во
время компоновки FBC смотрит на каждую библиотеку, чтобы выяснить, есть ли у
него такой файл __ fb_ct.inf или нет.
Чтобы сделать это у fbc есть пользовательский COFF, ELF32, и также архивный
формат файла для чтения, которые могут извлечь содержание раздела .fbctinf.
Ранее, fbc использовал libbfd от binutils, чтобы сделать это, однако
зависимости от libbfd проблематичны, особенно из-за его очень нестабильного
ABI.