Heim > Backend-Entwicklung > C++ > Warum gibt g beim Verknüpfen den Fehler „undefinierter Verweis auf Typeinfo' aus?

Warum gibt g beim Verknüpfen den Fehler „undefinierter Verweis auf Typeinfo' aus?

Barbara Streisand
Freigeben: 2024-12-02 16:17:13
Original
342 Leute haben es durchsucht

Why Does g   Throw an

Den Fehler „g undefinierter Verweis auf Typeinfo“ verstehen

Der Fehler „Undefinierter Verweis auf Typeinfo“ in g tritt häufig beim Verknüpfen mehrerer auf Kompilierungseinheiten. Dies weist darauf hin, dass der Linker einen Verweis auf die Typinformationen für eine bestimmte Klasse nicht auflösen kann.

Dieser Fehler kann auftreten, wenn eine virtuelle Funktion in einer Header-Datei deklariert, aber nicht in der entsprechenden Quelldatei definiert ist. Wenn eine virtuelle Funktion ohne Definition deklariert wird, wird sie im Wesentlichen als „extern“ deklariert, was bedeutet, dass davon ausgegangen wird, dass ihre Implementierung an anderer Stelle bereitgestellt wird. Wenn die Funktion jedoch nie definiert ist, kann der Linker beim Verknüpfen ihre Implementierung nicht finden.

Diese Art von Fehler ähnelt auch Situationen, in denen eine externe Variable ohne Definition in einer Kompilierungseinheit und ohne Zeiger auf deklariert wird es wird in einer anderen Kompilierungseinheit verwendet. Zum Linkzeitpunkt kann der Linker die Adresse der undefinierten Variablen nicht auflösen und generiert den Fehler.

Um diesen Fehler zu beheben, ist es notwendig, die virtuelle Funktion in der Quelldatei zu definieren, in der sie deklariert ist. Dadurch erhält der Linker die notwendigen Implementierungsdetails, um den Verweis auf die Typinformationen erfolgreich aufzulösen.

Durch das Verständnis der zugrunde liegenden Gründe für diesen Fehler können Entwickler effektiv Fehler beheben und sicherstellen, dass ihr Code ordnungsgemäß definiert und ohne Undefiniert kompiliert wird Referenzen.

Das obige ist der detaillierte Inhalt vonWarum gibt g beim Verknüpfen den Fehler „undefinierter Verweis auf Typeinfo' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage