2008年12月14日 星期日

compile qt source code (0) - mac osX 10.4 ppc/intel

20100323 新增
qt-everywhere-opensource-src-4.6.2.tar.gz

OS: mac osX 10.4 powerpc

gcc/g++ version: powerpc-apple-darwin8-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5564)

mac osX 10.4 只能使用 xcode 2.5, 不能用 xcode 3.X
用 xcode 的 gcc 4.0.1 會有 internal error 的怪問題。

所以需要 gcc 4.2.1 的版本。
gcc/g++ 4.2.1 請到以下 url 下載:
http://r.research.att.com/tools/#gcc42
太神奇了, 這竟然是 ppc/intel 都可以用的版本。
macds:~/usr/bin descent$ file gcc-4.2
gcc-4.2: Mach-O universal binary with 2 architectures
gcc-4.2 (for architecture i386): Mach-O executable i386
gcc-4.2 (for architecture ppc): Mach-O executable ppc


PowerPC 的 MAC (1.42 GHz PowerPC G41 GB DDR SDRAM )
./configure -no-qt3support
make


You maybe get the error message

cd tools/ && make -f Makefilecd assistant/ && make -f Makefile g++
-headerpad_max_install_names -Xarch_ppc -mmacosx-version-min=10.4 -arch
ppc -o ../../../../bin/Assistant.app/Contents/MacOS/Assistant .obj/debug-shared/fontpanel.o
.obj/debug-shared/helpviewer.o .obj/debug-shared/main.o
.obj/debug-shared/mainwindow.o .obj/debug-shared/indexwindow.o
.obj/debug-shared/topicchooser.o .obj/debug-shared/contentwindow.o
.obj/debug-shared/searchwidget.o .obj/debug-shared/preferencesdialog.o
.obj/debug-shared/filternamedialog.o .obj/debug-shared/centralwidget.o
.obj/debug-shared/installdialog.o .obj/debug-shared/bookmarkmanager.o
.obj/debug-shared/remotecontrol.o .obj/debug-shared/cmdlineparser.o
.obj/debug-shared/aboutdialog.o .obj/debug-shared/qtdocinstaller.o
.obj/debug-shared/moc_fontpanel.o .obj/debug-shared/moc_helpviewer.o
.obj/debug-shared/moc_mainwindow.o .obj/debug-shared/moc_indexwindow.o
.obj/debug-shared/moc_topicchooser.o .obj/debug-shared/moc_contentwindow.o
.obj/debug-shared/moc_searchwidget.o .obj/debug-shared/moc_preferencesdialog.o
.obj/debug-shared/moc_filternamedialog.o .obj/debug-shared/moc_centralwidget.o
.obj/debug-shared/moc_installdialog.o .obj/debug-shared/moc_bookmarkmanager.o
.obj/debug-shared/moc_remotecontrol.o .obj/debug-shared/moc_aboutdialog.o
.obj/debug-shared/moc_qtdocinstaller.o .obj/debug-shared/qrc_assistant.o
.obj/debug-shared/qrc_assistant_images.o
-F/Users/descent/qt-everywhere-opensource-src-4.6.2/lib
-L/Users/descent/qt-everywhere-opensource-src-4.6.2/lib
-L/Users/descent/qt-everywhere-opensource-src-4.6.2/plugins/sqldrivers
-framework QtHelp -L/Users/descent/qt-everywhere-opensource-src-4.6.2/lib
-F/Users/descent/qt-everywhere-opensource-src-4.6.2/lib -framework QtWebKit
-framework phonon -framework QtXmlPatterns -framework QtSql -framework QtXml
-framework QtGui -framework QtNetwork -framework QtCore
/usr/libexec/gcc/powerpc-apple-darwin8/4.2.1/ld:
warning can't open dynamic library: 
/usr/local/Trolltech/Qt-4.6.2/lib/libQtCLucene.4.dylib 
referenced from:
/Users/descent/qt-everywhere-opensource-src-4.6.2/lib/QtHelp.framework/QtHelp
(checking for undefined symbols may be affected) (No such file or directory,
errno = 2)/usr/libexec/gcc/powerpc-apple-darwin8/4.2.1/ld: Undefined symbols:


cp libQtCLucene.4.dylib to /usr/local/Trolltech/Qt-4.6.2/lib/

I use symbol link let /usr/local/Trolltech/Qt-4.6.2/lib/ link to Qt-4.6.2/lib
ln -s ~descent/qt-everywhere-opensource-src-4.6.2/lib .

可以用 mac port 安裝 qt4
sudo port install qt4-mac

可能也會遇到類似的問題, 可參考 ref: http://trac.macports.org/ticket/23284


Old part:

wget ftp://ftp.trolltech.com/qt/source/qt-mac-opensource-src-.4.3.tar.bz2

目前抓的是這版, 是 mac 的版本, X, ms windows, 都是一樣的編譯方式。
tar jxvf qt-mac-opensource-src-.4.3.tar.bz2

由於我不想編譯 qt3 的相容部份, 所以使用下面的參數, 這樣比較快。

./configure -no-qt3support
make

即可。 mac 版本有提供 precompile 版本, 就不用自己編譯了, 因為編譯 qt 空間要佔不少,
時間也要很久。

在我的 mac mini core duo 2.33 2g ram 上, 花費的時間。
不編譯 qt3 相容 library。

▼ qt-mac-opensource-src-4.4.3 compile time
real    137m59.436suser    94m57.319ssys     20m59.228s

▼ qt-mac-opensource-src-4.3.5 compile time
real    68m13.734suser    56m17.982ssys     10m0.747s

▼ qt-mac-opensource-src-4.2.2 compile time
real    52m58.058suser    40m45.525ssys     7m56.525s

版本越新, 功能越多, compile 時間越慢。 PowerPC 的 MAC
1.42 GHz PowerPC G41 GB DDR SDRAM

▼ qt-mac-opensource-src-4.3.5 compile time
real    278m33.604suser    161m11.483ssys     30m20.600s

這是使用 usb 外接硬碟, 看來 intel core duo 2.33 效能贏很多阿!

沒有留言:

張貼留言

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。