Является ли файловая платформа C .lib конкретной? - PullRequest
3 голосов
/ 25 июня 2010

Я пытаюсь использовать API для проприетарного интерфейсного устройства во встроенной системе (Freescale HCS08), и предоставленные файлы включают заголовки (.h) и библиотеки (.lib). Заголовок прекрасно компилируется с остальной частью моего кода (стандарт C), но при попытке связать библиотеку я получаю ошибки памяти, говорящие о том, что файл может быть поврежден.

Мое понимание библиотек на C несколько ограничено, так как я работаю почти исключительно на встраиваемых системах, где не существует таких волшебных вещей, как stdio, files и dll; но будет ли (или любая) библиотека зависеть от платформы? Содержит ли он полностью (если есть какой-либо уровень) скомпилированный код? Некоторые из других предоставленных файлов являются файлами проекта VS, поэтому, если это тот случай, когда .lib зависит от платформы, не было бы неожиданным, если бы не удалось связать файл, предназначенный для x86-Windows, с 8-битным компилятором; это может быть только я.

Ответы [ 2 ]

9 голосов
/ 25 июня 2010

Мало того, что файл .lib специфичен для процессора (не было бы никакой возможности связать код HCS08 с кодом x86), он специфичен для цепочки инструментов (CodeWarrior не будет взаимодействовать с SDCC, GCC / binutils не будет общаться с Visual Studio).

0 голосов
/ 25 июня 2010

Да. .Lib содержит скомпилированный код, поэтому он зависит от платформы.Если у вас есть исходный код, вы сможете перекомпилировать его для своей платформы.

...