2012-03-26 13 views
1

In einem aktuellen Projekt erstelle ich einen Physics Namensraum. in der Datei erhalte Core.hLNK2001, obwohl es definiert ist

extern real sleepEpsilon;/* = ((real).3);*/ // typedef float real; used, and works throughout project. 

dann in Core.cpp

real Physics::sleepEpsilon = ((real)0.3); 

obwohl ich den Fehler, und es bezieht sich auf eine andere Klasse, dass #includes Core.h, und ich ging sogar so weit voraus zu Physics:: auf allen von ihnen, aber der LNK-Fehler besteht immer noch.

EDIT: inklusive Fehler

1>Body.obj : error LNK2001: unresolved external symbol "float Physics::sleepEpsilon" ([email protected]@@3MA) 
1>C:\...\Physics\Debug\Physics.exe : fatal error LNK1120: 1 unresolved externals 
+2

wäre gut mit einigen weiteren Informationen, vielleicht eine Kopie des Fehlers – chikuba

+0

haben Sie versucht: Namespace Physik {extern real SleepEpsilon; } – marcinj

+0

@lauskan es ist im Namespace definiert und gilt als global für den Namespace, aber kurz ja, das ist, wie es geschrieben wird – gardian06

Antwort

1

Überprüfen Sie, ob der Ordner, die Core.h hat in Ihre weitere Bibliothek Verzeichnisse unter Linker- ist> Allgemein in Ihrem Projekt Eigenschaftsseiten. Dies führt normalerweise zu LNK2001-Fehlern.

+0

Ich baue tatsächlich den Namespace/Bibliothek, und der Linker ist zwischen Dateien, die beide den Namespace implementieren/erweitern – gardian06

+0

Erstellen Sie eine DLL? Wie lautet das Format der Ausgabedatei, die Sie generieren möchten? –

+0

Ich versuche, einen Namespace für eine klare Einfügung und Auflösung zu erstellen, so dass es nur eine Datei gibt, die auf die Header der oberen Ebene verweist. Daher besteht die eindeutige Antwort darin, den Namespace als Dateien zu behandeln, die Teil des Programms sind. – gardian06

Verwandte Themen