Seite 1 von 1

MAC Qt 4.0.1 linken funktioniert nicht

Verfasst: 12. Juni 2006 15:23
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

Re: MAC Qt 4.0.1 linken funktioniert nicht

Verfasst: 12. Juni 2006 16:07
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.....

Verfasst: 13. Juni 2006 10:19
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 :(

Verfasst: 13. Juni 2006 18:03
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...

Verfasst: 14. Juni 2006 08:42
von skywalker
hm, die ganzen undefined symbols sind objekte von klassen, die ich selber geschreiben habe. das ist ja das komische. :(