2011-01-24 76 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的不同目标版本构建。