Quiero compilar una biblioteca estática en Linux para Windows. A continuación se presenta el procedimiento que seguí para compilarBiblioteca estática de compilación cruzada de Linux para Windows
- compilar el código fuente de la biblioteca estática en Linux a través de
i586-mingw32msvc-cc -c static_lib.c -o static_lib.o
- Creado la biblioteca estática en Linux
ar rv static_lib.a static_lib.o
yranlib static_lib.a
- creé un programa de ejemplo en Eclipse en Windows y vinculó esta biblioteca estática que se compila de forma cruzada en Linux para Windows. El compilador utilizado en Windows era mingw.
al compilar el programa en Windows Eclipse, el compilador me da el siguiente error.
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
Los códigos son los siguientes:
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();
}
amablemente me dan sugerencias para recopilar y hacer que funcione.
Saludos Johnnie Alan
Incluso después de usar el archivador de compilación cruzada, el enlazador de mingw en Windows arroja el mismo error. – Johnnie