Voglio compilare la libreria statica in Linux per Windows. Di seguito è riportata la procedura che ho seguito per la compilazioneLibreria statica di compilazione incrociata da Linux per Windows
- compilare il codice sorgente di libreria statica in Linux usando
i586-mingw32msvc-cc -c static_lib.c -o static_lib.o
- Creato la libreria statica in linux
ar rv static_lib.a static_lib.o
eranlib static_lib.a
- ho creato un programma di esempio in Eclipse su Windows e collegato questa libreria statica che è cross compilata in linux per windows. Il compilatore utilizzato a Windows era mingw.
durante la compilazione del programma in Windows Eclipse, il compilatore mi dà il seguente errore.
static_test\static_lib.a: file format not recognized; treating as linker script
\static_test\static_lib.a:1: syntax error
collect2: ld returned 1 exit status
Build error occurred, build is stopped
I codici sono i seguenti:
static_lib.c
#include <stdio.h>
void func(void)
{
printf("Hello\n");
printf("Hello\n");
printf("Hello\n");
printf("Hello\n");
printf("Hello\n");
printf("Hello\n");
printf("Hello\n");
printf("Hello\n");
printf("Hello\n");
printf("Hello\n");
printf("Hello\n");
printf("Hello\n");
}
sample_static.c
#include <stdio.h>
extern void func(void);
int main()
{
printf ("Main function\n");
func();
}
gentilmente mi danno suggerimenti per compilare e farlo funzionare.
saluti Johnnie Alan
Anche dopo aver usato l'archiver per il cross-compilatore, il linker mingw su windows genera lo stesso errore. – Johnnie