Undefined Reference ...
-
Hi,
ich verstehe das Problem noch nicht richtig:
nm libvtkIO.dll
zeigt mir unter anderem folgendes:
200f27d2 T __ZN12vtkPNGWriter3NewEv
Soweit so gut.
Mein Programm zeigt beim Linken folgenden Fehler:
myFile.o(.text+0x61f6):myFile.cc:170: undefined reference to `vtkPNGWriter::New()'
Was bedeutet das? Die oben genannte libvtkIO.dll wird mit-gelinkt und steht rechts von myFile.o bei der Link-Anweisung.
Mit Header-Files kann das Problem nichts zu tun haben, wenn der Compiler ohne Fehler durchläuft, oder?Gruss, KB
-
Karl Blau schrieb:
Was bedeutet das?
Das bedeutet, dass in myFile.cc die Funktion vtkPNGWriter::New() aufgerufen wird, der Linker aber nirgendwo die Definition davon finden kann. Lösung: linke das Modul, in dem sich die Definition befindet, hinzu.
Karl Blau schrieb:
Die oben genannte libvtkIO.dll wird mit-gelinkt und steht rechts von myFile.o bei der Link-Anweisung.
DLL's werden nicht gelinkt, das sind ja bereits Executables. Du musst Objekt- bzw. Bibliotheksdateien linken. Beim MSC sind das zB .obj und .lib Dateien, beim GCC .o und .a Dateien.