Я использую статически связанную базу данных sqlite, и для компиляции каждой следующей версии мне иногда приходится вносить небольшие изменения в список используемых объектных файлов.Но иногда изменения, которые я должен внести, меня озадачивают.Например, до версии 3_6_10 этот порядок
{$L 'Objs\is.OBJ'}
{$L 'Objs\mbisspc.OBJ'}
был в порядке, но начиная с 3_6_12 компоновщик сказал:
unsatisfied forward or external declaration _isspace
, но поменял порядок на
{$L 'Objs\mbisspc.OBJ'}
{$L 'Objs\is.OBJ'}
,Что касается изменений в sqlite, то он действительно перестал использовать функцию c isspace в 3_6_12 и начал использовать внутренний эквивалент, поэтому ключевое слово isspace даже не появляется внутри файла obj.
Так почему порядок связанного объектного файла с директивой $ L имеет значение и где я могу прочитать об этом больше?Я полагаю, что это связано с перекрестным использованием перечисленных файлов obj, но я буду чувствовать себя в большей безопасности, если пойму, что происходит
Спасибо