Statische Verknüpfung von Bibliotheken in MinGW

Angenommen, ich habe drei C-Quelldateien. Die ersten beiden sind LIBs (lib * .a?), Und die dritte ist eine Anwendung, die sie verwendet.

Der erste ist (re.c):

int re(int i) {
    return i;
}

Der zweite ist (test.c):

int re(int); // Depends on re.c

int test(int i) {
    return re(i);
}

Und der dritte ist (main.c):

#include<stdio.h>

int test(int); // Uses test.c

int main(void) {

    printf("%d\n",test(0));
    return 0;
}

Wie kann ich nun die ersten beiden LIBs so erstellen, dass ich sie später mit der Hauptanwendung statisch verknüpfen kann?

Ich kann die DLLs erstellen und sie in meiner Anwendung dynamisch verknüpfen, z. B .:

cc -o re.dll re.c -shared -Wl, - out-implib = libre.a (für re.c)

cc -o test.dll test.c -L. -lre -shared -Wl, - out-implib = libtest.a (für test.c)

cc -o main.exe main.c -L. -lre -ltest

Wie erstelle ich also äquivalente LIBs, die in meiner ausführbaren Binärdatei in MinGW statisch verknüpft werden sollen, und wie verknüpfe ich sie?

Offensichtlich unter Windows :)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage