MAC Qt 4.0.1 linken funktioniert nicht

Alles rund um die Programmierung mit Qt
Antworten
skywalker
Beiträge: 9
Registriert: 12. April 2006 21:39

MAC Qt 4.0.1 linken funktioniert nicht

Beitrag von skywalker »

Hi,

wir haben eine Applikation mit Qt geschrieben, die unter Linux und Windows kompiliert. Unter Mac OS 10.4.5 geht das Kompilieren aber das Linken klappt nicht.

Das Makefile (als Anhang):

Die Ausgabe in der Shell

Code: Alles auswählen

~/Desktop/QTvvis_v0.02_source sbecker$ make                                                      
c++ -headerpad_max_install_names -o QTvvis_v0.app/Contents/MacOS/QTvvis_v0 main.o CBaseVRenderer.o CClassifiedVoxelFieldRLEPosition.o CCubeVRenderer.o CInt1VRenderer.o CInt2VRenderer.o CLogoRenderer.o CPreIntegrator.o CPreIntTextureVRenderer.o CPreIntVRenderer.o CShearWarp2VRenderer.o CTexture1VRenderer.o CTransferFunction.o CTransferFunctionElem.o CVRenderer.o CVRendererSceneConfig.o CWindowOpeningFile.o BitField.o ConfigVVis.o fileutils.o HPTime.o imageutils.o RespCurve.o stringutils.o Surface.o Triangle.o Vector.o CHistogramBase.o CHistogramDensity.o CHistogramDensityGradient.o CHistogramDensityGradientGL.o CVoxelField.o CVoxelFieldGrad.o ArcBall.o tinystr.o tinyxml.o tinyxmlerror.o tinyxmlparser.o CFileReaderTFVVis.o CFileWriterTFVVis.o CWidgetGLLightPosition.o CWidgetGLSphere.o CWidgetHistogramBase.o CWidgetHistogramDensity.o CWidgetHistogramDensityGradient.o CWidgetRenderer.o CConfig.o CConfigElement.o CLog.o CLogElem.o CFileIO.o CFileReaderBase.o CFileReaderOpenQVis.o CFileReaderTiff.o CFileReaderVrend.o CFileWriterBase.o CFileWriterOpenQVis.o CFileWriterTiff.o CFileWriterVrend.o FileFormatDetector.o CConfigReader.o CConfigReaderXML.o CConfigWriter.o CConfigWriterXML.o CLogWriter.o CLogWriterHTML.o CLogWriterProgress.o CLogWriterTxt.o CWindowMain.o CDialogAbout.o CWindowTransferFunctionEditor.o CDialogFileInfo.o CWindowLightEditor.o moc_CTransferFunction.o moc_CDialogAbout.o moc_CDialogAuthors.o moc_CDialogFileInfo.o moc_CDialogPreferences.o moc_CDialogSetBrightness.o moc_CWindowLightEditor.o moc_CWindowMain.o moc_CWindowMaterialEditor.o moc_CWindowOpeningFile.o moc_CWindowTransferFunctionEditor.o moc_CWizardConvertFiles.o moc_CWizardConvertFilesConverting.o moc_CWizardConvertFilesFromOpenQVisOrVrend.o moc_CWizardConvertFilesFromTiff.o moc_CWizardConvertFilesToOpenQVis.o moc_CWizardConvertFilesToTiff.o moc_CWizardConvertFilesToVrend.o moc_CWizardStart.o moc_CHistogramBase.o moc_CWidgetHistogramBase.o moc_CWidgetHistogramDensity.o moc_CWidgetHistogramDensityGradient.o moc_CWidgetRenderer.o moc_CLogWriter.o moc_CLogWriterHTML.o moc_CLogWriterProgress.o moc_CLogWriterTxt.o   -F/usr/local/Trolltech/Qt-4.1.0/lib -L/usr/local/Trolltech/Qt-4.1.0/lib -framework QtOpenGL -F/Users/sbecker/Desktop/qt/lib -L/Users/sbecker/Desktop/qt/lib -framework QtGui -framework Carbon -framework QuickTime -framework QtCore -lz -lm -framework ApplicationServices -framework OpenGL -framework AGL
/usr/bin/ld: Undefined symbols:
CDialogPreferences::CDialogPreferences(QWidget*)
CWizardConvertFiles::CWizardConvertFiles(QWidget*)
CDialogSetBrightness::getValue()
CDialogSetBrightness::CDialogSetBrightness(QWidget*, float)
CDialogAuthors::CDialogAuthors(QWidget*, QString)
CWindowMaterialEditor::setDensity(float, float)
CWindowMaterialEditor::setDiffuse(Vector3DT<float> const&)
CWindowMaterialEditor::setGradient(float, float)
CWindowMaterialEditor::setSpecular(Vector3DT<float> const&)
CWindowMaterialEditor::setEmissivity(Vector3DT<float> const&)
CWindowMaterialEditor::setGlossiness(float)
CWindowMaterialEditor::setDescription(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
CWindowMaterialEditor::setAbsorptivity(float)
CWindowMaterialEditor::setDensityRange(float, float)
CWindowMaterialEditor::setGradientRange(float, float)
CWindowMaterialEditor::CWindowMaterialEditor(QWidget*, QGLFormat)
CWindowMaterialEditor::~CWindowMaterialEditor()
CWindowMaterialEditor::getDiffuse() const
CWindowMaterialEditor::getSpecular() const
CWindowMaterialEditor::getDensityTo() const
CWindowMaterialEditor::getEmissivity() const
CWindowMaterialEditor::getGlossiness() const
CWindowMaterialEditor::getGradientTo() const
CWindowMaterialEditor::getDensityFrom() const
CWindowMaterialEditor::getDescription() const
CWindowMaterialEditor::getAbsorptivity() const
CWindowMaterialEditor::getGradientFrom() const
CDialogAuthors::on_close()
CDialogAuthors::~CDialogAuthors()
CDialogAuthors::~CDialogAuthors()
non-virtual thunk to CDialogAuthors::~CDialogAuthors()
non-virtual thunk to CDialogAuthors::~CDialogAuthors()
CDialogPreferences::on_spinbuttonTextureMethodSlices_value_changed()
CDialogPreferences::on_spinbuttonTextureMethodTextureSizeX_value_changed()
CDialogPreferences::on_spinbuttonTextureMethodTextureSizeY_value_changed()
CDialogPreferences::accept()
CDialogPreferences::reject()
CDialogPreferences::~CDialogPreferences()
CDialogPreferences::~CDialogPreferences()
non-virtual thunk to CDialogPreferences::~CDialogPreferences()
non-virtual thunk to CDialogPreferences::~CDialogPreferences()
CDialogSetBrightness::on_ok()
CDialogSetBrightness::on_close()
CDialogSetBrightness::~CDialogSetBrightness()
CDialogSetBrightness::~CDialogSetBrightness()
non-virtual thunk to CDialogSetBrightness::~CDialogSetBrightness()
non-virtual thunk to CDialogSetBrightness::~CDialogSetBrightness()
CWindowMaterialEditor::resizeEvent(QResizeEvent*)
CWindowMaterialEditor::on_colorbutton_color_set()
CWindowMaterialEditor::on_DiffuseChangeColorButton()
CWindowMaterialEditor::on_SpecularChangeColorButton()
CWindowMaterialEditor::on_EmissivityChangeColorButton()
CWindowMaterialEditor::on_spinbuttonDensityTo_value_changed()
CWindowMaterialEditor::on_spinbuttonGradientTo_value_changed()
CWindowMaterialEditor::on_spinbuttonDensityFrom_value_changed()
CWindowMaterialEditor::on_spinbuttonGradientFrom_value_changed()
CWindowMaterialEditor::~CWindowMaterialEditor()
CWindowMaterialEditor::minimumSizeHint() const
CWindowMaterialEditor::sizeHint() const
non-virtual thunk to CWindowMaterialEditor::~CWindowMaterialEditor()
non-virtual thunk to CWindowMaterialEditor::~CWindowMaterialEditor()
CWizardConvertFiles::on_delete_event(QCloseEvent*)
CWizardConvertFiles::on_ButtonGoBack_activate()
CWizardConvertFiles::on_ButtonGoForward_activate()
CWizardConvertFiles::on_FrameConverting_finished(bool)
CWizardConvertFiles::~CWizardConvertFiles()
CWizardConvertFiles::~CWizardConvertFiles()
non-virtual thunk to CWizardConvertFiles::~CWizardConvertFiles()
non-virtual thunk to CWizardConvertFiles::~CWizardConvertFiles()
CWizardConvertFilesConverting::check()
CWizardConvertFilesConverting::~CWizardConvertFilesConverting()
CWizardConvertFilesConverting::~CWizardConvertFilesConverting()
non-virtual thunk to CWizardConvertFilesConverting::~CWizardConvertFilesConverting()
non-virtual thunk to CWizardConvertFilesConverting::~CWizardConvertFilesConverting()
CWizardConvertFilesFromOpenQVisOrVrend::on_browseFileButton()
CWizardConvertFilesFromOpenQVisOrVrend::check()
CWizardConvertFilesFromOpenQVisOrVrend::~CWizardConvertFilesFromOpenQVisOrVrend()
CWizardConvertFilesFromOpenQVisOrVrend::~CWizardConvertFilesFromOpenQVisOrVrend()
non-virtual thunk to CWizardConvertFilesFromOpenQVisOrVrend::~CWizardConvertFilesFromOpenQVisOrVrend()
non-virtual thunk to CWizardConvertFilesFromOpenQVisOrVrend::~CWizardConvertFilesFromOpenQVisOrVrend()
CWizardConvertFilesFromTiff::on_browseFileButton()
CWizardConvertFilesFromTiff::on_EntryNamingSchema_changed()
CWizardConvertFilesFromTiff::on_SpinButtonStartAtNumber_value_changed()
CWizardConvertFilesFromTiff::check()
CWizardConvertFilesFromTiff::~CWizardConvertFilesFromTiff()
CWizardConvertFilesFromTiff::~CWizardConvertFilesFromTiff()
non-virtual thunk to CWizardConvertFilesFromTiff::~CWizardConvertFilesFromTiff()
non-virtual thunk to CWizardConvertFilesFromTiff::~CWizardConvertFilesFromTiff()
CWizardConvertFilesToOpenQVis::on_browseFolderButton()
CWizardConvertFilesToOpenQVis::on_browseFolderButton_2()
CWizardConvertFilesToOpenQVis::check()
CWizardConvertFilesToOpenQVis::~CWizardConvertFilesToOpenQVis()
CWizardConvertFilesToOpenQVis::~CWizardConvertFilesToOpenQVis()
non-virtual thunk to CWizardConvertFilesToOpenQVis::~CWizardConvertFilesToOpenQVis()
non-virtual thunk to CWizardConvertFilesToOpenQVis::~CWizardConvertFilesToOpenQVis()
CWizardConvertFilesToTiff::on_browseFileButton()
CWizardConvertFilesToTiff::updateExampleFilenames()
CWizardConvertFilesToTiff::check()
CWizardConvertFilesToTiff::~CWizardConvertFilesToTiff()
CWizardConvertFilesToTiff::~CWizardConvertFilesToTiff()
non-virtual thunk to CWizardConvertFilesToTiff::~CWizardConvertFilesToTiff()
non-virtual thunk to CWizardConvertFilesToTiff::~CWizardConvertFilesToTiff()
CWizardConvertFilesToVrend::on_browseFolderButton()
CWizardConvertFilesToVrend::check()
CWizardConvertFilesToVrend::~CWizardConvertFilesToVrend()
CWizardConvertFilesToVrend::~CWizardConvertFilesToVrend()
non-virtual thunk to CWizardConvertFilesToVrend::~CWizardConvertFilesToVrend()
non-virtual thunk to CWizardConvertFilesToVrend::~CWizardConvertFilesToVrend()
CWizardStart::~CWizardStart()
CWizardStart::~CWizardStart()
non-virtual thunk to CWizardStart::~CWizardStart()
non-virtual thunk to CWizardStart::~CWizardStart()
collect2: ld returned 1 exit status
make: *** [QTvvis_v0.app/Contents/MacOS/QTvvis_v0] Error 1
Zudem haben wir keine Ahnung wie man unter MAC entwickelt. :roll:
Vielen Dank für Hilfe!

VG
Dateianhänge
Makefile.txt
Makefile
(79.83 KiB) 89-mal heruntergeladen
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Re: MAC Qt 4.0.1 linken funktioniert nicht

Beitrag von patrik08 »

skywalker hat geschrieben: wir haben eine Applikation mit Qt geschrieben, die unter Linux und Windows kompiliert. Unter Mac OS 10.4.5 geht das Kompilieren aber das Linken klappt nicht.
Zudem haben wir keine Ahnung wie man unter MAC entwickelt. :roll:
Vielen Dank für Hilfe!
VG
Wenn es Unter Linux geht und kompiliarbar ist ... ist es zu mac ein kurzer weg... Wichtig ist mac Tiger 10.4 mit Xcode 2.2 qt4 installieren wie bei trolltech beschrieben die export setzen wie in linux... und dann lauft es....

das Linken ist von linux zu mac gleich ... nur die statische libs sind anders... aber der job macht ja qt...

So geht der code zu 90% mit intel & ppc prozessoren von mac...

Aber wenn der programmierer keine ahnung hat von mac .... dann ist der code ein lotto im mac.... und die erfahrung kann man nicht in einem forum sammeln....

Von meinem projekt http://sourceforge.net/projects/qtexcel-xslt/ geht der code auf alle 3 OS ... jedoch ...

Code: Alles auswählen

#if defined Q_WS_X11
#if defined Q_WS_WIN
#if defined Q_WS_MAC
ist sicher 20 mal im programm vorhanden.....
skywalker
Beiträge: 9
Registriert: 12. April 2006 21:39

Beitrag von skywalker »

hi, ok, code editieren usw. kann ich schon unter mac. makefile editieren und ausführen auch aber ich kenne mich nicht mit den libs aus.

aber eigentlich sollte alles gehen wie du sagtest (qmake macht ja alles).

naja,. ich sitze immernoch mit den undefined symbols rum und weiss nicht warum diese undefined sind :(
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

Dann lasse qt die libs compilieren und mache sie kompatibel fuer alle 3 os...

ein beispiel von libs fuer alle 3 os findest du bei http://sourceforge.net/projects/sqlitebrowser/
oder http://ciz.ch/svnciz/_STATIC_LIBS_QT4/lib_tidy_src/ die tidy libs
aber ich kann nicht sagen was fuer libs dein programm braucht...
skywalker
Beiträge: 9
Registriert: 12. April 2006 21:39

Beitrag von skywalker »

hm, die ganzen undefined symbols sind objekte von klassen, die ich selber geschreiben habe. das ist ja das komische. :(
Antworten