繼續qt

突然想到一個問題,是不是搞QT的人都清楚qt的名字,以及之間的關係。把名字變來變去,似乎是一件“好玩”的事。對開發者來說,是一件“痛苦”的事。

對於QT編譯,我想,創立"qt編譯學"是很有必要的,哈哈。

 

qt編譯是否成功,依賴系統環境(包括環境變量,需要的庫),還有開發者操作。

從心理學偵探學犯罪學的角度來看,編譯qt(對於其他編譯好像也可以),應該把自己當作偵探,不要期望兇手會自首,應該從每個error上發現線索,抓到兇手。

 

爲了方便設置,寫了一個設置環境變量的shell腳本qtenv,去掉原本已經被我設得不堪入目的變量,重新再來一遍。乾淨的,順序上qt優先,然後交叉編器,最後是系統(不清楚是否有關係)。

運行之(注意, 是".  ~/qtenv" ),

之後,按照編譯步驟,再一次出現成功。

 

系統:ubuntu 8.04

QT:

qt-2.3.7

qtopia-1.7.0

tmake-1.11

上面qt-2.3.2是在交叉編譯器arm-linux裏的。

回顧一下曾經的error.在我的系統上。下面的錯誤的根本原因是環境變量。

 

/work/qt-2.3.7/lib/libqte.so: undefined reference to `QMultiLineEdit::undoAvailable(bool)'
/work/qt-2.3.7/lib/libqte.so: undefined reference to `QWSClient::connectionClosed()'
/work/qt-2.3.7/lib/libqte.so: undefined reference to `QActionGroup::selected(QAction*)'
/work/qtopia-1.7.0/lib/libqpe.so: undefined reference to `QComboBox::className() const'
/work/qt-2.3.7/lib/libqte.so: undefined reference to `QIconView::mouseButtonPressed(int, QIconViewItem*, QPoint const&)'
collect2: ld returned 1 exit status
make[1]: *** [/work/qtopia-1.7.0/bin/sysinfo] Error 1
make[1]: Leaving directory `/work/qtopia-1.7.0/src/applications/sysinfo'
make: *** [applications/sysinfo] Error 2

 

============================================================

ochapman@ochapman-desktop:/work/qt-2.3.7$ make sub-src
cd src/moc; make
make[1]: Entering directory `/work/qt-2.3.7/src/moc'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/work/qt-2.3.7/src/moc'
rm -f bin/moc
cp src/moc/moc bin/moc
make -f src-mt.mk
make[1]: Entering directory `/work/qt-2.3.7'
(not building threaded Qt)
make[1]: Leaving directory `/work/qt-2.3.7'
cd src; make
make[1]: Entering directory `/work/qt-2.3.7/src'
/work/qt-2.3.7/bin/moc kernel/qthread_unix.cpp -o kernel/qthread_unix.moc
/work/qt-2.3.7/bin/moc: 1: Syntax error: word unexpected (expecting ")")
make[1]: *** [kernel/qthread_unix.moc] Error 2
make[1]: Leaving directory `/work/qt-2.3.7/src'
make: *** [sub-src] Error 2

=============================================================

chapman@ochapman-desktop:/work/qtopia-1.7.0/src$ make
make -C libraries/qtopia
make[1]: Entering directory `/work/qtopia-1.7.0/src/libraries/qtopia'
/work/qt-2.3.7/bin/uic passwordbase_p.ui -o ./passwordbase_p.h
/work/qt-2.3.7/bin/uic: error while loading shared libraries: libqutil.so.1: cannot open shared object file: No such file or directory
make[1]: *** [passwordbase_p.h] Error 127
make[1]: Leaving directory `/work/qtopia-1.7.0/src/libraries/qtopia'
make: *** [libraries/qtopia] Error 2

=============================================================

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章