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.oandranlib 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
Try using the cross-compiler archiver instead of the native one, i.e. use
i586-mingw32msvc-arandi586-mingw32msvc-ranlibinstead ofarandranlib.Or is that just a typo on the question?