Seite 1 von 1

qmake statisch linken

Verfasst: 8. Februar 2006 19:28
von neosun
Hallo zusammen,

ich hoffe mal ich bin hier im richtigen Forum mit meinem Problem.

Problem: Ich meine Applikation nicht richtig gelinkt, verstehe aber nicht warum.

Background: Ich habe ein Projekt basierend auf qmake als Buildsystem.
Ich erstelle zwei eigene libs und benutze qt und vtk und itk als framworks.
Ich versuche alles statisch zu linken. Ich habe qt, vtk, itk statisch uebersetzt.
Nun bekomme ich immer den Fehler das er bestimmte objekte nicht kennt ich verstehe aber nicht warum. Wenn ich es dynamisch linke geht alles!

Kann mir jemand helfen. Danke!

Hier mein compile versuche:

make[1]: Entering directory `/home/jf/work/pace/trunk/apps'
cd framework && make
make[2]: Entering directory `/home/jf/work/pace/trunk/apps/framework'
rm -f libpcq_framework.a
ar cqs libpcq_framework.a build/obj/application.o build/obj/mainwindow.o build/obj/actionmanager.o build/obj/dockwindow.o build/obj/workspace.o build/obj/scene.o build/obj/workspacewidget.o build/obj/aboutpluginsdialog.o build/obj/aboutdialog.o build/obj/moc_application.o build/obj/moc_mainwindow.o build/obj/moc_dockwindow.o build/obj/moc_workspace.o build/obj/moc_workspacewidget.o build/obj/moc_aboutpluginsdialog.o build/obj/moc_aboutdialog.o build/obj/qrc_framework.o
rm -f ../../lib/staticlibs/libpcq_framework.a
mv -f libpcq_framework.a ../../lib/staticlibs/
make[2]: Leaving directory `/home/jf/work/pace/trunk/apps/framework'
cd pacestudio && make
make[2]: Entering directory `/home/jf/work/pace/trunk/apps/pacestudio'
g++ -Wl,-rpath,/home/jf/work/pace/3rdparty/qt/lib -o ../../bin/pacestudio build/obj/pacestudio.o -L/usr/X11R6/lib -L/home/jf/work/pace/3rdparty/qt/lib -L/home/jf/work/pace/3rdparty/vtk/lib -lQVTK -lvtkWidgets -lvtkHybrid -lvtkVolumeRendering -lvtkRendering -lvtkIO -lvtkGenericFiltering -lvtkGraphics -lvtkImaging -lvtkFiltering -lvtkCommon -lvtkftgl -lvtkfreetype -lvtkDICOMParser -lvtkexpat -lvtktiff -lvtkpng -lvtkjpeg -lvtkzlib -lvtksys -lvtkMPEG2Encode -lvtkNetCDF -lvtkParallel -lvtkexoIIc -L/home/jf/work/pace/3rdparty/itk/lib/InsightToolkit -lITKAlgorithms -lITKBasicFilters -lITKCommon -lITKDICOMParser -lITKEXPAT -lITKFEM -lITKIO -lITKMetaIO -lITKNrrdIO -lITKNumerics -lITKSpatialObject -lITKStatistics -lITKniftiio -lITKznz -litkgdcm -litkjpeg12 -litkjpeg16 -litkjpeg8 -litknetlib -litkpng -litksys -litktiff -litkvcl -litkvnl -litkvnl_algo -litkvnl_inst -litkzlib -L/home/jf/work/pace/trunk/lib -lpcl_algorithms -lpcq_framework -lQtXml -L/home/jf/work/pace/3rdparty/src/qt/lib -lQtOpenGL -L/usr/X11R6/lib -lGLU -lGL -lQtGui -lpng -lSM -lICE -lXi -lXrender -lXrandr -lXcursor -lXinerama -lfreetype -lfontconfig -lXext -lX11 -lQtNetwork -lQtCore -lz -lm -ldl -lpthread
/home/jf/work/pace/trunk/lib/libpcq_framework.a(mainwindow.o): In function `PCQMainWindow::loadData(QString)':
mainwindow.cpp:(.text+0x2be3): undefined reference to `PCLSimgeo::PCLSimgeo[in-charge](int, int, int, int, int)'
mainwindow.cpp:(.text+0x2c50): undefined reference to `vtkImageData::New()'
mainwindow.cpp:(.text+0x2dc9): undefined reference to `PCLFileIO::create(char const*, char const*)'
mainwindow.cpp:(.text+0x2e06): undefined reference to `PCLFile::PCLFile[in-charge](PCLSimgeo*, PCLFileIO*)'
mainwindow.cpp:(.text+0x2e49): undefined reference to `vtkImageData::SetScalarType(int)'
mainwindow.cpp:(.text+0x2e60): undefined reference to `vtkImageData::SetNumberOfScalarComponents(int)'
mainwindow.cpp:(.text+0x2eb9): undefined reference to `PCLFile::exportToVTK(unsigned short*)'

/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o): In function `PCQScene::PCQScene[not-in-charge]()':
scene.cpp:(.text+0x21): undefined reference to `vtkObject::vtkObject[not-in-charge]()'
scene.cpp:(.text+0x62): undefined reference to `vtkRenderer::New()'
scene.cpp:(.text+0x6a): undefined reference to `vtkImageData::New()'
scene.cpp:(.text+0x72): undefined reference to `vtkVolumeProperty::New()'
scene.cpp:(.text+0xc3): undefined reference to `vtkObject::~vtkObject [not-in-charge]()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o): In function `PCQScene::PCQScene[in-charge]()':
scene.cpp:(.text+0xf1): undefined reference to `vtkObject::vtkObject[not-in-charge]()'
scene.cpp:(.text+0x132): undefined reference to `vtkRenderer::New()'
scene.cpp:(.text+0x13a): undefined reference to `vtkImageData::New()'
scene.cpp:(.text+0x142): undefined reference to `vtkVolumeProperty::New()'
scene.cpp:(.text+0x193): undefined reference to `vtkObject::~vtkObject [not-in-charge]()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o): In function `PCQScene::~PCQScene [not-in-charge]()':
scene.cpp:(.text+0x1d2): undefined reference to `vtkObject::~vtkObject [not-in-charge]()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o): In function `PCQScene::~PCQScene [in-charge]()':
scene.cpp:(.text+0x212): undefined reference to `vtkObject::~vtkObject [not-in-charge]()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o): In function `PCQScene::~PCQScene [in-charge deleting]()':
scene.cpp:(.text+0x255): undefined reference to `vtkObject::~vtkObject [not-in-charge]()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o): In function `PCQScene::render()':
scene.cpp:(.text+0x2b2): undefined reference to `vtkVolumeProperty::ShadeOn(int)'
scene.cpp:(.text+0x2ce): undefined reference to `vtkVolumeProperty::SetDiffuse(int, double)'
scene.cpp:(.text+0x2ec): undefined reference to `vtkVolumeProperty::SetAmbient(int, double)'
scene.cpp:(.text+0x30a): undefined reference to `vtkVolumeProperty::SetSpecular(int, double)'
scene.cpp:(.text+0x326): undefined reference to `vtkVolumeProperty::SetSpecularPower(int, double)'
scene.cpp:(.text+0x32b): undefined reference to `vtkVolumeRayCastCompositeFunction::New()'
scene.cpp:(.text+0x332): undefined reference to `vtkVolumeRayCastMapper::New()'
scene.cpp:(.text+0x372): undefined reference to `vtkVolume::New()'
scene.cpp:(.text+0x380): undefined reference to `vtkVolume::SetMapper(vtkAbstractVolumeMapper*)'
scene.cpp:(.text+0x392): undefined reference to `vtkVolume::SetProperty(vtkVolumeProperty*)'
scene.cpp:(.text+0x3bc): undefined reference to `vtkRenderer::AddVolume(vtkProp*)'
scene.cpp:(.text+0x3d2): undefined reference to `vtkRenderer::ResetCamera()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x10): undefined reference to `vtkObjectBase::Delete()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x14): undefined reference to `vtkObjectBase::FastDelete()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x18): undefined reference to `vtkObject::PrintSelf(std::basic_ostream<char, std::char_traits<char> >&, vtkIndent)'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x1c): undefined reference to `vtkObjectBase::PrintHeader(std::basic_ostream<char, std::char_traits<char> >&, vtkIndent)'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x20): undefined reference to `vtkObjectBase::PrintTrailer(std::basic_ostream<char, std::char_traits<char> >&, vtkIndent)'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x24): undefined reference to `vtkObjectBase::Register(vtkObjectBase*)'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x28): undefined reference to `vtkObjectBase::UnRegister(vtkObjectBase*)'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x34): undefined reference to `vtkObject::CollectRevisions(std::basic_ostream<char, std::char_traits<char> >&)'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x38): undefined reference to `vtkObject::RegisterInternal(vtkObjectBase*, int)'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x3c): undefined reference to `vtkObject::UnRegisterInternal(vtkObjectBase*, int)'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x40): undefined reference to `vtkObjectBase::ReportReferences(vtkGarbageCollector*)'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x48): undefined reference to `vtkObject::DebugOn()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x4c): undefined reference to `vtkObject::DebugOff()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x50): undefined reference to `vtkObject::Modified()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTV8PCQScene+0x54): undefined reference to `vtkObject::GetMTime()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o): In function `vtkObject::IsA(char const*)':
scene.cpp:(.gnu.linkonce.t._ZN9vtkObject3IsAEPKc+0x57): undefined reference to `vtkObjectBase::IsTypeOf(char const*)'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o): In function `vtkObject::NewInstanceInternal() const':
scene.cpp:(.gnu.linkonce.t._ZNK9vtkObject19NewInstanceInternalEv+0x15): undefined reference to `vtkObject::New()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(scene.o):(.gnu.linkonce.d._ZTI8PCQScene+0x10): undefined reference to `typeinfo for vtkObject'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(workspacewidget.o): In function `PCQWorkspaceWidget::PCQWorkspaceWidget[not-in-charge](QWidget*)':
workspacewidget.cpp:(.text+0x6a): undefined reference to `vtkRenderer::New()'
workspacewidget.cpp:(.text+0xd6): undefined reference to `QVTKWidget::QVTKWidget[in-charge](QWidget*, QFlags<Qt::WindowType>)'
workspacewidget.cpp:(.text+0x10d): undefined reference to `QVTKWidget::GetRenderWindow()'
/home/jf/work/pace/trunk/lib/libpcq_framework.a(workspacewidget.o): In function `PCQWorkspaceWidget::PCQWorkspaceWidget[in-charge](QWidget*)':
workspacewidget.cpp:(.text+0x1da): undefined reference to `vtkRenderer::New()'
workspacewidget.cpp:(.text+0x246): undefined reference to `QVTKWidget::QVTKWidget[in-charge](QWidget*, QFlags<Qt::WindowType>)'
workspacewidget.cpp:(.text+0x27d): undefined reference to `QVTKWidget::GetRenderWindow()'
collect2: ld returned 1 exit status
make[2]: *** [../../bin/pacestudio] Error 1
make[2]: Leaving directory `/home/jf/work/pace/trunk/apps/pacestudio'
make[1]: *** [sub-pacestudio-make_default] Error 2
make[1]: Leaving directory `/home/jf/work/pace/trunk/apps'
make: *** [sub-apps-make_default] Error 2
jf@c3-po ~/work/pace/trunk
%