Fehler LNK2019: nicht aufgelöstes externes symbol in einem mehrere Projekte Lösung
Habe ich eine visual studio solution mit mehreren Projekten. Einer von Ihnen, "MyProject" ist eine statische Bibliothek (.lib). Das Projekt, unter vielen anderen Klassen hat zwei Klassen "A" und "B".
A. h:
#pragma once
class A
{
public:
void foo();
};
A.cpp:
#include A.h
void A::foo(){
//do something
}
B. h:
#pragma once
class B
{
public:
void bar();
};
B.cpp:
#include B.h
#include A.h
void B::bar(){
A a;
a.foo();
}
Ohne Kompilierungsfehler, den ich bin immer die Verknüpfung Fehler:
OtherProject.lib(B. obj) : error LNK2019: nicht aufgelöstes externes symbol "public: void __thiscall
A::foo(void)" (?foo@A@@QAE_NXZ) verwiesen in Funktion "public: void
__thiscall B::bar(void)" (?bar@B@@QAEXXZ)
Alles scheint in Ordnung zu sein. Ich sehe die Kompilierung von A.cpp. Gebäude oder-Verknüpfung nur das Projekt "MyProject" in Ordnung ist. Aber wenn Sie versuchen zu bauen die ganze Lösung, ich bin immer der Fehler.
Dank!
Ich denke mal so :). Was kann es sein?
Wie baut man es? Sind alle diese Dateien in Ihrem Projekt?
Alle Dateien sind in das Projekt.
möglich, Duplikat der Was ist eine undefined reference/nicht aufgelöstes externes symbol Fehler und wie behebe ich es?
InformationsquelleAutor Sanich | 2013-03-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es stellt sich heraus, dass es ist ein weiteres Projekt
OtherProject
beinhaltet KlasseB
und nutzt es die Funktionbar()
. Ich wusste nicht, Lesen Sie die Fehler gut genug und habe nicht bemerkt, dass die Verknüpfung Fehler tritt auf, in einem anderen Projekt. Alles hatte ich zu tun ist, gehörenA.cpp
imOtherProject
.InformationsquelleAutor Sanich
In Visual-Studio die meisten Gestänge Probleme vergessen hinzufügen
.cpp
- Dateien.Überprüfen Sie alle haben die Umsetzung Dateien werden dem Projekt Hinzugefügt. Dann reinigen Sie und bauen Ihr Projekt.
InformationsquelleAutor deepmax
Entweder die Implementierung dieser Methode ist auskommentiert A.cpp:
Oder
A.cpp
ist nicht enthalten in der build des Projekts. Klicken Sie rechts auf A.cpp im Projektmappen-Explorer und wählen Sie Eigenschaften aus, um zu sehen, ob es Ausgeschlossen ist, aus zu Bauen. Wenn Sie bauen, tun Sie dies sehen:Tippte ich diesen code in mein Visual Studio und es hat gut funktioniert.
Oh, Sie in Projekte unterteilt. Was ist Ihre Lösung-Struktur (welche Projekte)? Ich sehe MyProject.Lib ... bauen Sie eine DLL?
JA. Es ist eine DLL.
Sie haben mehr als ein Projekt? Welche Projekte haben Sie? Haben Sie eine Lösung mit einem Haupt? welches Projekt ist das?
Ja. Mehr als eine.
InformationsquelleAutor John Jesus
andere Lösung für das Sie Zusammenführen können .h und .cpp-Dateien. Auf diese Weise erhalten Sie eine Lösung zu diesem. In meinem Fall, ich habe dies und es funktioniert gut
InformationsquelleAutor Tayyab