Gibt es eine Möglichkeit, nicht verwendete undefinierte Referenzen zu ignorieren?

Angenommen, ich habe zwei Quelldateien -UndefErr.cpp:

#include <cstdio>

void UndefFunc();
void Func2(){UndefFunc();}

void Func1(){printf("Hi\n");}

Und dasmain.cpp:

void Func1();

int main(){
    Func1();
    return 0;
}

Wie Sie in der sehenUndefErr.cpp dasFunc2() werde einen Fehler auslösen, dafür undefined verwendenUndefFunc(). Die Hauptfunktion kümmert sich jedoch nicht um dieFunc2()! Gemäßeine relevante Frage Ich könnte eine Option übergeben--unresolved-symbols = Ignoriere-in-Objekt-Dateien zum Linker, aber ich möchte eine etwas andere Sache. Ich brauche einen Linker, um zu wissen, ob die undefinierten Funktionen irgendwo verwendet werden, und erst dann scheitern.

Der Grund für diese seltsame Frage ist, dass ich versuche, a zu verwendenlwIP, und es ist schwer zu verstehen, alle Abhängigkeiten(Ich brauche nur TCP / IP)und ich kann keine Tutorials im Internet finden. Also dachte ich, ich könnte am meisten kompilieren(oder alle) die .c-Dateien separat und schreiben Sie einige einfache Tests, um zu sehen, was es tut. Dieser Ansatz stößt jedoch auf "undefinierte Referenzen", von denen die meisten für den Anwendungsfall wahrscheinlich irrelevant sind.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage