Statycznie łączące biblioteki w MinGW
Załóżmy, że mam trzy pliki źródłowe C. Pierwsze dwie to LIB (lib * .a?), A trzecia to aplikacja, która ich używa.
Pierwszy to (re.c):
int re(int i) {
return i;
}
Drugi to (test.c):
int re(int); // Depends on re.c
int test(int i) {
return re(i);
}
A trzeci to (main.c):
#include<stdio.h>
int test(int); // Uses test.c
int main(void) {
printf("%d\n",test(0));
return 0;
}
W jaki sposób mogę utworzyć pierwsze dwa LIBy w taki sposób, aby mógł je później statycznie połączyć z główną aplikacją?
Wiem, jak tworzyć biblioteki DLL i łączyć je dynamicznie w mojej aplikacji, np .:
cc -o re.dll re.c -shared -Wl, - out-implib = libre.a (dla re.c)
cc -o test.dll test.c -L. -lre -shared -Wl, - out-implib = libtest.a (dla test.c)
cc -o main.exe main.c -L. -lre -ltest
Jak więc stworzyć równoważne LIB, które będą statycznie połączone w moim pliku wykonywalnym w MinGW i jak je połączyć?
Oczywiście pod Windows :)