che collega * .o i file in Windows
Domanda
Quando sto che collega i file .o con il linker LD usando MinGW su Windows, mi dà l'errore "file.o: il file non riconosciuto: formato di file non riconosciuto". Ho cercato di farlo con instread Cygwin, ma la stessa cosa accade. Qualche suggerimento?
Soluzione
Molto probabilmente si dispone di un file oggetto in un formato che il linker non capisce. Ci sono un sacco di diversi formati là fuori: COFF, OMF, ELF (l'elenco potrebbe continuare ..)
Per fortuna c'è uno strumento gratuito che permette di convertire da un formato ad un altro. Inoltre, consente di dare un'occhiata nelle parti interne del formato oggetto e ti dice in quale formato di un file oggetto viene codificato.
http://www.agner.org/optimize/#objconv
Questa utility a riga di comando poco risolto tutti i problemi di formato oggetto che abbia mai avuto. Si può anche smontare librerie, file oggetto, le DLL e gli eseguibili.