2011-01-24 114 views
0

我一直試圖在Mac OS X上靜態構建SDK,但遇到了對我來說沒有意義的錯誤。這裏是我的配置命令:無法在Mac OS X上從源代碼構建Qt SDK

sh configure -static -opensource -universal

然後我用構建框架:

sudo make sub-src

構建過程運作良好開始,但一段時間後,我開始越來越錯誤,如下面的,有百這些:

ranlib: for architecture: i386 file: /usr/local/Trolltech/Qt-4.7.1/lib/libQtScript.a(ARMAssembler.o) has no symbols 
ranlib: for architecture: i386 file: /usr/local/Trolltech/Qt-4.7.1/lib/libQtScript.a(MacroAssemblerARM.o) has no symbols

一段時間後,然後,構建過程中碰到這樣的命令:

g++ -headerpad_max_install_names -Xarch_i386 -mmacosx-version-min=10.4 -Xarch_ppc -mmacosx-version-min=10.4 -arch i386 -arch ppc -all_load -o ../../../../bin/Assistant.app/Contents/MacOS/Assistant .obj/debug-static/fontpanel.o .obj/debug-static/aboutdialog.o .obj/debug-static/bookmarkdialog.o .obj/debug-static/bookmarkfiltermodel.o .obj/debug-static/bookmarkitem.o .obj/debug-static/bookmarkmanager.o .obj/debug-static/bookmarkmanagerwidget.o .obj/debug-static/bookmarkmodel.o .obj/debug-static/centralwidget.o .obj/debug-static/cmdlineparser.o .obj/debug-static/contentwindow.o .obj/debug-static/findwidget.o .obj/debug-static/filternamedialog.o .obj/debug-static/helpenginewrapper.o .obj/debug-static/helpviewer.o .obj/debug-static/indexwindow.o .obj/debug-static/installdialog.o .obj/debug-static/main.o .obj/debug-static/mainwindow.o .obj/debug-static/preferencesdialog.o .obj/debug-static/qtdocinstaller.o .obj/debug-static/remotecontrol.o .obj/debug-static/searchwidget.o .obj/debug-static/topicchooser.o .obj/debug-static/xbelsupport.o .obj/debug-static/collectionconfiguration.o .obj/debug-static/helpviewer_qtb.o .obj/debug-static/moc_fontpanel.o .obj/debug-static/moc_aboutdialog.o .obj/debug-static/moc_bookmarkdialog.o .obj/debug-static/moc_bookmarkfiltermodel.o .obj/debug-static/moc_bookmarkmanager.o .obj/debug-static/moc_bookmarkmanagerwidget.o .obj/debug-static/moc_bookmarkmodel.o .obj/debug-static/moc_centralwidget.o .obj/debug-static/moc_contentwindow.o .obj/debug-static/moc_findwidget.o .obj/debug-static/moc_filternamedialog.o .obj/debug-static/moc_helpenginewrapper.o .obj/debug-static/moc_indexwindow.o .obj/debug-static/moc_installdialog.o .obj/debug-static/moc_mainwindow.o .obj/debug-static/moc_preferencesdialog.o .obj/debug-static/moc_qtdocinstaller.o .obj/debug-static/moc_remotecontrol.o .obj/debug-static/moc_searchwidget.o .obj/debug-static/moc_topicchooser.o .obj/debug-static/moc_helpviewer_qtb.o .obj/debug-static/qrc_assistant.o .obj/debug-static/qrc_assistant_images.o -L/Users/laurent/.Trash/qt-src-4.7.1/lib -L/Users/laurent/.Trash/qt-src-4.7.1/plugins/sqldrivers -lQtHelp_debug -L/Users/laurent/.Trash/qt-src-4.7.1/lib -lQtCLucene_debug -L/usr/local/Trolltech/Qt-4.7.1/plugins/sqldrivers -lqsqlite_debug -lQtSql_debug -lQtXml_debug -lQtGui_debug -framework Carbon -framework AppKit -lQtNetwork_debug -framework SystemConfiguration -framework CoreFoundation -lQtCore_debug -lz -lm -framework ApplicationServices

隨後是數百這些行:

ld: warning: qt_noop() has different visibility (hidden) in /Users/laurent/.Trash/qt-src-4.7.1/lib/libQtHelp_debug.a(qhelpenginecore.o) and (default) in .obj/debug-static/fontpanel.o 
ld: warning: QBool::operator void const*() consthas different visibility (hidden) in /Users/laurent/.Trash/qt-src-4.7.1/lib/libQtHelp_debug.a(qhelpenginecore.o) and (default) in .obj/debug-static/fontpanel.o
之後

,我得到很多這樣的:

Undefined symbols for architecture ppc: 
    "QCLuceneStandardAnalyzer::QCLuceneStandardAnalyzer()", referenced from: 
     fulltextsearch::clucene::QHelpSearchIndexWriter::optimizeIndex()  in libQtHelp_debug.a(qhelpsearchindexwriter_clucene.o) 
     fulltextsearch::clucene::QHelpSearchIndexWriter::run()  in libQtHelp_debug.a(qhelpsearchindexwriter_clucene.o) 
     fulltextsearch::clucene::QHelpSearchIndexReaderClucene::boostSearchHits(QHelpEngineCore const&, QList >&, QList const&)in libQtHelp_debug.a(qhelpsearchindexreader_clucene.o) 
     fulltextsearch::clucene::QHelpSearchIndexReaderClucene::run()  in libQtHelp_debug.a(qhelpsearchindexreader_clucene.o)

在這一點上,構建過程將停止與此錯誤:

ld: symbol(s) not found for architecture ppc 
collect2: ld returned 1 exit status 
lipo: can't open input file: /var/tmp//cc5nBJvn.out (No such file or directory) 
make[4]: *** [../../../../bin/Assistant.app/Contents/MacOS/Assistant] Error 1 
make[3]: *** [sub-assistant-install_subtargets-ordered] Error 2 
make[2]: *** [sub-tools-install_subtargets-ordered] Error 2 
make[1]: *** [sub-assistant-install_subtargets-ordered] Error 2 
make: *** [sub-tools-install_subtargets-ordered] Error 2

我的配置是雪豹,我從源下載建設: http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.1.tar.gz

任何人都可以看到有什麼問題嗎?我一直在這個工作幾個小時,無法弄清楚,所以我會非常感謝任何建議。

+0

嗨。我也一樣。我已經嘗試了幾個小時和幾個小時的可能性,但我不知道在Snow Leopard的靜態模式下qt4會發生什麼情況。應用程序構建得很好,但運行後會崩潰。我很失望。如果你找到任何解決方案,你可以在這裏寫信嗎?謝謝。 (對不起,我英語)。 – 2011-02-05 23:06:48

+0

不幸的是,我從來沒有想過它,我只是放棄了,因爲它讓我瘋狂。最後,我使用macdeployqt工具在Mac OS X上構建靜態可執行文件。您只需指定可執行文件的名稱,並將所有庫添加到該文件中即可。它對我來說工作得很好。更多信息請訪問:http://doc.qt.nokia.com/4.7/deployment-mac.html – 2011-02-07 15:51:34

回答

0

您的問題:

ld: symbol(s) not found for architecture ppc

如果你建立了10.6,不支持AFAIK PPC。如果你想爲PPC構建,那麼你可能需要爲OS X - 10.4或10.5的不同目標版本構建。