Domanda

Sto cercando di utilizzare un'API per un dispositivo di interfaccia proprietaria su un sistema embedded (Freescale HCS08), ei file forniti includere le intestazioni (h) e le librerie (lib). L'intestazione compila bene con il resto del mio codice (di serie C), ma quando si cerca di collegamento alla libreria ottengo errori di memoria dice che il file potrebbe essere danneggiato.

La mia comprensione di librerie in C è un po 'limitato come io lavoro quasi esclusivamente su sistemi embedded in cui non esistono cose magici come stdio, i file e le DLL; ma sarebbe la biblioteca (o qualsiasi) essere piattaforma specifica? Contiene completamente (se non v'è alcun tipo di livello ci) codice compilato? Alcuni degli altri file forniti sono file di progetto VS, quindi se è il caso che il Lib è piattaforma specifica, non sarebbe inaspettata che collega un file di significato per x86 di Windows ad un compilatore 8 bit sarebbe fallito; potrebbe essere solo me.

È stato utile?

Soluzione

Non solo è uno specifico lib file di CPU (non ci sarebbe modo di codice di collegamento HCS08 in codice x86), è specifico toolchain (CodeWarrior Non vuole parlare con SDCC, GCC / binutils non parlare con Visual Studio ).

Altri suggerimenti

Sì, il lib contiene codice compilato in modo da è la piattaforma-specifici. Se avete la fonte si dovrebbe essere in grado di ri-compilarlo alla vostra piattaforma.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top