Info: resolving vtable for ...
-
Servus,
ich versuche gerade VTK-5.0 mit MinGW unter WinXP zu kompilieren. Ich bekomme folgenden Fehler (beim Linken zur dll):
Info: resolving vtable for vtkPropCollectionby linking to __imp___ZTV17vtkPropCollection (auto-import) Info: resolving vtable for vtkScalarsToColorsby linking to __imp___ZTV18vtkScalarsToColors (auto-import) Info: resolving vtable for vtkFunctionSetby linking to __imp___ZTV14vtkFunctionSet (auto-import) Info: resolving vtable for vtkSimpleCriticalSectionby linking to __imp___ZTV24vtkSimpleCriticalSection (auto-import)
Wie darf ich das verstehen?
Standardmäßig wird in einer Header-Datei von VTK
#define EXPORT __declspec(dllexport)
für viele Funktionen von VTK definiert. Da dies unter Windows Probleme beim Linken macht, hat mir jemand einen Tipp gegeben, diese dllexport-Sachen rauszunehmen.Nun kommt obengenannter Fehler. Ich verstehe nicht genau was der Fehler eigentlich bedeutet.
Gruss, KB
-
Wo steht da was von Fehler
-
Info:...
Von Fehler steht DA zumindest nichts.
-
ok ... hier der rest
CMakeFiles/vtkFiltering.dir/vtkActor2DCollection.obj(.text$_ZN17vtkPropCollectionC2Ev[vtkPropCollection::vtkPropCollection()]+0x16):vtkActor2DCollection.cxx: variable 'vtable for vtkPropCollection' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details. CMakeFiles/vtkFiltering.dir/vtkActor2DCollection.obj(.text$_ZN17vtkPropCollectionD2Ev[vtkPropCollection::~vtkPropCollection()]+0xb):vtkActor2DCollection.cxx: variable 'vtable for vtkPropCollection' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details. CMakeFiles/vtkFiltering.dir/vtkColorTransferFunction.obj(.text$_ZN18vtkScalarsToColorsD2Ev[vtkScalarsToColors::~vtkScalarsToColors()]+0xb):vtkColorTransferFunction.cxx: variable 'vtable for vtkScalarsToColors' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details. CMakeFiles/vtkFiltering.dir/vtkInterpolatedVelocityField.obj(.text$_ZN14vtkFunctionSetD2Ev[vtkFunctionSet::~vtkFunctionSet()]+0xb):vtkInterpolatedVelocityField.cxx: variable 'vtable for vtkFunctionSet' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details. CMakeFiles/vtkFiltering.dir/vtkPolyData.obj(.text$_ZN24vtkSimpleCriticalSectionC1Ev[vtkSimpleCriticalSection::vtkSimpleCriticalSection()]+0xb):vtkPolyData.cxx: variable 'vtable for vtkSimpleCriticalSection' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details. collect2: ld returned 1 exit status make[2]: *** [bin/libvtkFiltering.dll] Error 1 make[2]: Leaving directory `/D/Dev/Libs/VTK-5.0/Bin-MinGW' make[1]: *** [Filtering/CMakeFiles/vtkFiltering.dir/all] Error 2 make[1]: Leaving directory `/D/Dev/Libs/VTK-5.0/Bin-MinGW' make: *** [all] Error 2
Gruss, KB
-
Füge mal folgendes Linkerflag hinzu:
-Wl,--enable-runtime-pseudo-reloc
Wichtig ist das es genauso geschrieben werden muss ( kein Leerzeichen zwischen Komma und -- )
BR
evilissimo
-
Vielen Dank für den Hinweis. Mit diesem Linker-Flag komme ich schon einiges weiter! Jetzt kommen da noch verschiedene 3rd Party Tools, wie z.B. Tiff und JPEG usw... diese machen momentan noch Schwierigkeiten. Ich vermute mal, dass es sich um das gleiche Problem handelt. Beim Linken kommt also folgende Meldung:
Linking CXX shared library ../bin/libvtkRendering.dll Info: resolving vtable for vtkPropCollectionby linking to __imp___ZTV17vtkPropCollection (auto-import) Info: resolving vtable for vtkSimpleCriticalSectionby linking to __imp___ZTV24vtkSimpleCriticalSection (auto-import) Info: resolving vtable for vtkMapper2Dby linking to __imp___ZTV11vtkMapper2D (auto-import) CMakeFiles/vtkRendering.dir/vtkTesting.obj(.text+0x1d0d):vtkTesting.cxx: undefined reference to `vtkPNGWriter::New()' CMakeFiles/vtkRendering.dir/vtkTesting.obj(.text+0x2b7b):vtkTesting.cxx: undefined reference to `vtkJPEGWriter::New()' CMakeFiles/vtkRendering.dir/vtkTesting.obj(.text$_ZN15vtkSmartPointerI12vtkPNGReaderE3NewEv[vtkSmartPointer<vtkPNGReader>::New()]+0xb):vtkTesting.cxx: undefined reference to `vtkPNGReader::New()' collect2: ld returned 1 exit status make[2]: *** [bin/libvtkRendering.dll] Error 1 make[2]: Leaving directory `/D/Dev/Libs/VTK-5.0/Bin-MinGW' make[1]: *** [Rendering/CMakeFiles/vtkRendering.dir/all] Error 2 make[1]: Leaving directory `/D/Dev/Libs/VTK-5.0/Bin-MinGW' make: *** [all] Error 2
Ich vermute mal dass es im Fall von Tiff mit folgender Datei zu tun hat:
#include <vtktiff/tiffDllConfig.h> /* Compile with -DTIFFDLL for Windows DLL support */ #if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32) # define WIN32 #endif #if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386) # ifndef __32BIT__ # define __32BIT__ # endif #endif #if defined(__MSDOS__) && !defined(MSDOS) # define MSDOS #endif #if defined(TIFFDLL) # if defined(_WINDOWS) || defined(WINDOWS) # ifdef FAR # undef FAR # endif # include <windows.h> # define TEXPORT WINAPI # ifdef WIN32 # define TEXPORTVA WINAPIV # else # define TEXPORTVA FAR _cdecl _export # endif # endif # if defined (__BORLANDC__) # if (__BORLANDC__ >= 0x0500) && defined (WIN32) # include <windows.h> /* # define TEXPORT __declspec(dllexport) WINAPI # define TEXPORTRVA __declspec(dllexport) WINAPIV */ # define TEXPORT _cdecl _export # define TEXPORTRVA _cdecl _export # else # if defined (_Windows) && defined (__DLL__) # define TEXPORT _export # define TEXPORTVA _export # endif # endif # endif #endif #ifndef TEXPORT # define TEXPORT #endif #ifndef TEXPORTVA # define TEXPORTVA #endif #ifndef TEXTERN # define TEXTERN extern #endif #ifndef FAR # define FAR #endif
Ich verstehe immernoch nicht genau was das Problem ist und wie es zu stande kommt. Werden die Symbolnamen nicht korrekt angelegt? Oder nur nicht gefunden? Wieso eigentlich nicht?
Was müsste ich in diesem Fall anpassen?
VGruss, K.B.
-
So wie es jetzt aussieht fehlen dir die passenden Libs.
Musst halt schauen welche du dafür brauchst. Ich kenn mich mit der Library nicht aus.
BR
evilissimo
-
So wie ich das sehe sind die Libs vorhanden. Beispielhaft habe ich für Tiff mal die entsprechende Datei mitgepostet. Ich gehe mal davon aus, dass es sich um ein ähnliches Problem handelt.
Es sind libs für tiff, jpeg, png usw. in VTK enthalten. Und unter Linux sind diese Libs auch ausreichend! Ich konnte unter Windows das komplette VTK-Paket auch schon kompilieren, allerdings nicht als Shared-Lib.
Gruss, KB