Załóżmy, że mam dwa pliki źródłowe - UndefErr.cpp:Czy istnieje sposób na zignorowanie nieużywanych niezdefiniowanych odniesień?
#include <cstdio>
void UndefFunc();
void Func2(){UndefFunc();}
void Func1(){printf("Hi\n");}
a main.cpp:
void Func1();
int main(){
Func1();
return 0;
}
Jak widać w UndefErr.cppFunc2()
dzieje aby wywołać błąd, ponieważ używa niezdefiniowanego UndefFunc()
. Jednak główna funkcja nie dba o Func2()
! Według a relevant question mogę przekazać opcję --unresolved symboli = ignore-in-obiektowe plików z łącznikiem, ale chcę trochę inna sprawa. Potrzebuję linkera, żeby sprawdzić, czy niezdefiniowane funkcje są gdzieś używane, a dopiero potem zawodzą.
Powodem prosząc takie dziwne pytanie jest to, że staram się używać lwIP i trudno jest zrozumieć wszystkie jego zależności (I wystarczy TCP/IP), i nie mogę znaleźć samouczki w Internecie. Więc pomyślałem mogłem skompilować najbardziej (lub wszystkie) się .c pliki osobno i napisać kilka prostych testów, aby zobaczyć, co robi. Ale takie podejście natrafia na "nieokreślone odniesienia", większość z nich prawdopodobnie nie ma związku z przypadkiem.
wydaje się, jakby łącznikiem może po prostu „dowiedzieć się” w razie potrzeby nawet do rozwiązania referencje ... jedno rozwiązanie jest jednak, jeśli nie ma wiele funkcji, które sprawiają, że można po prostu uciążliwe skrótową je w głównym. cpp ... eg 'void UndefFunc() {}' – mark
@mark no, w projekcie bardzo wiele funkcji. I główny problem, którego nie znam, którego funkcje nie są używane, dlatego chcę jakoś zautomatyzować to ... –
Nie rozumiem pytania. Łącznik będzie narzekał, jeśli napotka nieokreśloną funkcję. –