Question

Je suis en train d'utiliser une API pour un dispositif d'interface propriétaire sur un système embarqué (Freescale HCS08), et les fichiers fournis comprennent les en-têtes (.h) et bibliothèques (.lib). L'en-tête compile très bien avec le reste de mon code (C standard), mais en essayant de lier à la bibliothèque je reçois des erreurs de mémoire indiquant que le fichier peut être corrompu.

Ma compréhension des bibliothèques C est quelque peu limitée que je travaille presque exclusivement sur les systèmes embarqués où les choses magiques comme stdio, les fichiers et dll n'existent pas; mais serait la bibliothèque (ou tout autre) être spécifique de la plate-forme? Est-ce qu'il contient entièrement (s'il y a une sorte de niveau là-bas) de code compilé? Certains des autres fichiers fournis sont des fichiers de projet VS, donc s'il est vrai que la .lib est plate-forme spécifique, il ne serait pas surprenant que la liaison d'un fichier destiné à Windows x86 à un compilateur 8 bits échouerait; il pourrait être juste moi.

Était-ce utile?

La solution

Non seulement est spécifique CPU fichier .lib (code, il n'y aurait aucun moyen de lien HCS08 au code x86), il est spécifique toolchain (CodeWarrior ne parlera pas à SDCC, GCC / binutils ne sera pas parler à Visual Studio ).

Autres conseils

Oui, le .lib contient le code compilé il est donc plate-forme spécifique. Si vous avez la source que vous devriez être en mesure de re-compiler sur votre plate-forme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top