Sagen wir, ich habe diese Funktion DoThis (const char * abc) in einer Datei namens one.cpp. Wenn ich versuche, diese Funktion von einer anderen Funktion in einer anderen Quelldatei (two.cpp) aufzurufen, erhalte ich den Fehler: Fehler LNK2001: nicht aufgelöstes externes Symbol (C ++), obwohl ich #include "one.h" verwendet habe Tue ich das zu beheben?
Das bedeutet, dass die Definition Ihrer Funktion in Ihrem Programm nicht vorhanden ist. Sie haben vergessen, das one.cpp
zu Ihrem Programm hinzuzufügen.
Was "hinzufügen" bedeutet, hängt in diesem Fall von Ihrer Build-Umgebung und ihrer Terminologie ab. In MSVC (da Sie offensichtlich MSVC verwenden) müssen Sie one.cpp
zum Projekt hinzufügen.
In praktischer Hinsicht, die für alle typischen Erstellungsmethoden gilt, fehlt bei der Verknüpfung Ihres Programms die von one.cpp
erstellte Objektdatei.
Klingt so, als ob Sie Microsoft Visual C ++ verwenden. Wenn das der Fall ist, besteht die größte Wahrscheinlichkeit darin, dass Sie Ihre two.cpp nicht mit one.cpp kompilieren (one.cpp ist die Implementierung für one.h).
Wenn Sie von der Befehlszeile (cmd.exe) kommen, versuchen Sie es zuerst: cl -o zwei.exe one.cpp two.cpp
Wenn Sie aus der IDE kommen, klicken Sie mit der rechten Maustaste auf den Projektnamen von Solution Explore. Wählen Sie dann Hinzufügen, Bestehender Eintrag .... Fügen Sie one.cpp in Ihr Projekt ein.
Tags und Links c++