Nicht aufgelöste Symbole zeigen an, dass der erforderliche Objektcode oder die Bibliotheken, die diese Symbole definieren, nicht verknüpft sind. Diese bestimmten Symbole sind höchstwahrscheinlich auf Implementierungen der C++ - Operatoren new
und delete
zurückzuführen und weisen höchstwahrscheinlich darauf hin, dass Sie die C++ - Bibliothek nicht verknüpft haben. Ich bin mit der Green Hills-Werkzeugkette nicht sehr vertraut, aber in Fällen, in denen Sie den Linker separat zum Compiler aufrufen, müssen Sie möglicherweise explizit die C++ - Verknüpfung angeben.
Bei Verwendung einer IDE ist es möglich, dass Sie ein C-Projekt erstellt, aber C++ - Code hinzugefügt haben. Dies kann Linkeroptionen zur Folge haben, die C++ - Unterstützung und Bibliotheken nicht verbinden.
Der Compiler von Green Hill verfügt über eine Auswahl von C++ - Bibliotheken, die entweder durch die Sprachvariantenoption oder die Option zum Überschreiben von Linkern ausgewählt werden. Diese Optionen können in den MULTI IDE-Einstellungen oder in der Befehlszeile festgelegt werden, je nachdem, wie Sie Ihr Projekt verwalten. Lesen Sie die Compiler/Linker Dokumentation - ich habe folgendes gefunden:
Sie Zugriff auf die gesamte Dokumentation haben sollten, im Anschluss an diese die Seiten beschreiben, wie teh Linker sucht Bibliotheken und wie alternative Bibliotheken angeben. Wenn Sie die automatische Bibliothekssuche unter Angabe von -nostdlib
deaktiviert haben, wird die automatische Verknüpfung nicht durchgeführt und Sie müssen die erforderlichen Bibliotheken explizit verknüpfen.
Sie scheinen * umbenannt Kompilieren von C++ - Code, aber nicht Verknüpfen der C++ - Standardbibliothek, die Implementierungen für die Operatoren "new" und "delete" bereitstellt. – Clifford
Ich suchte in meinem Arm Compiler installiert Ordner aber nicht gefunden die Datei libstdC++. A oder so ähnlich. Können Sie mir den Dateinamen der Bibliothek vorschlagen, die die Implementierung von new/delete enthält? – tuanpm
Sie müssten dann Informationen über die Toolchain zu Ihrer Frage hinzufügen (zB gcc, armcc, IAR, Green Hills oder andere und Versionsnummer), und Sie sollten die Frage wirklich so korrigieren, wie ich es vorgeschlagen habe (dh das gesamte Build-Protokoll so posten) Wir können den Aufruf des Compilers und die verwendeten Optionen sowie die vollständigen Fehlermeldungen sehen, ansonsten raten wir). Es ist möglich, dass Ihre Frage kein Duplikat ist und wieder geöffnet werden kann, aber weitere Informationen sind erforderlich (bearbeiten Sie die Frage - schreiben Sie keine Kommentare mit relevanten Informationen - SO ist kein Diskussionsforum). – Clifford