Pregunta

Estoy tratando de utilizar una API para un dispositivo de interfaz propietaria de un sistema embebido (Freescale HCS08), y los archivos proporcionados incluir cabeceras (.h) y bibliotecas (.lib). La cabecera compila bien con el resto de mi código (C estándar), pero cuando se trata de enlace con la biblioteca me da errores de memoria diciendo que el archivo podría estar dañado.

Mi comprensión de las bibliotecas de C es un poco limitado, ya que trabajo casi exclusivamente en sistemas embebidos en que no existen cosas mágicas como stdio, archivos y archivos DLL; sino que la biblioteca (o cualquier otro) es específica de la plataforma? ¿Contiene totalmente (si hay algún tipo de nivel allí) código compilado? Algunos de los otros archivos proporcionados son archivos de proyecto VS, por lo que si se da el caso de que el Lib es una plataforma específica, no sería inesperado que la vinculación de un archivo destinado a x86 con Windows a un compilador de 8 bits fallaría; podría ser sólo yo.

¿Fue útil?

Solución

No sólo es un archivo .lib específica de la CPU (no habría forma de código de enlace HCS08 de código x86), es la cadena de herramientas específicas (CodeWarrior no quiere hablar con SDCC, GCC / binutils no va a hablar con Visual Studio ).

Otros consejos

Si la lib contiene el código compilado por lo que es específico de la plataforma. Si usted tiene la fuente que debe ser capaz de volver a compilar a su plataforma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top