我想在Linux中爲Windows編譯靜態庫。以下是我跟着編譯從Linux爲Windows開發交叉編譯靜態庫
- 使用
i586-mingw32msvc-cc -c static_lib.c -o static_lib.o
- 創建靜態庫在linux
ar rv static_lib.a static_lib.o
和ranlib static_lib.a
- 編譯的Linux靜態庫的源代碼的程序我在Eclipse中創建了一個示例程序在Windows和鏈接這個靜態庫,它是在linux中爲Windows交叉編譯的。在windows上使用的編譯器是mingw。
在windows eclipse中編譯程序的時候,編譯器給了我下面的錯誤。
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
的代碼如下:
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();
}
請給我點建議編譯並得到它的工作。
問候 杜琪峯艾倫
即使使用交叉編譯器歸檔程序後,Windows上的mingw鏈接程序也會引發相同的錯誤。 – Johnnie 2011-01-07 10:59:20