I want to compile static library in linux for windows. Following is the procedure I followed for compiling
- Compile the source code of static library in linux using
i586-mingw32msvc-cc -c static_lib.c -o static_lib.o
- Created the static library in linux
ar rv static_lib.a static_lib.o
and ranlib static_lib.a
- I created a sample program in eclipse on windows and linked this static library which is cross compiled in linux for windows. The compiler used at windows was mingw.
while compiling the program in windows eclipse, the compiler gives me the following 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
The Codes are as follows:
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();
}
kindly give me suggestions to compile and get it work.
Regards
Johnnie Alan
Copyright Notice:Content Author:「Johnnie」,Reproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/4624078/cross-compile-static-library-from-linux-for-windows