Fehler LNK2001: nicht aufgelöstes externes Symbol (C ++) [duplizieren]

8

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?

    
user2549990 09.07.2013, 06:20
quelle

2 Antworten

11

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.

    
AnT 09.07.2013 06:37
quelle
3

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.

    
Payton Wu 09.07.2013 06:39
quelle

Tags und Links