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 :)

questionAnswers(3)

yourAnswerToTheQuestion