qtopia-2.2.0編譯錯誤修改
時間:2015.12.08
作者:大寶同學
QQ:2779916214
平台:fedora10
在使用天嵌公司提供的Qte源碼在x86平台、arm平台編譯通過之後,就想自己來從頭移植Qte到arm平台,首先下載下傳了qtopia-2.2.0的源碼,這個東西真還不好找,後來在一個網友的csdn找到了,并且還不要積分的,良心網友,附上連結:http://download.csdn.net/detail/morre/1967261,在此感謝這位網友的無私分享!
直接解壓:tar -zxvf qtopia-free-2.2.0.tar.gz
進入目錄,首先進行配置
echo yes | ./configure -qte '-embedded -no-xft -qconfig qpe -depths 16,32 -system-jpeg -gif' -qpe '-edition pda -displaysize 320x240 -fontfamilies "helvetica fixed micro smallsmooth smoothtimes unifont"' -qt2 '-no-opengl -no-xft' -dqt '-no-xft -thread'
再接着編譯:make
編譯通過之後接着:make install
第一次編譯會出現下面羅列的問題,可以按照錯誤提示一步一步修改,也可以先按照下面的步驟先修改源碼,再編譯。
編譯通過之後使用下面的腳本運作(注下面的腳本來源于天嵌提供的運作腳本修改而來):
#!/bin/sh
qt_boot=/home/albert/qt_study/qte
$qt_boot/x86-qtopia-2.2.0/qt2/bin/qvfb -width 640 -height 480 -depth 16 &
cd $qt_boot/x86-qtopia-2.2.0/qtopia/image
if [ -d root ] ; then
echo "the root directory is already !"
else
mkdir root
fi
export set HOME=$PWD/root
cd opt/Qtopia
export set PATH=$PWD/bin:$PATH
export set LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
export set QTDIR=$PWD
export set QPEDIR=$PWD
export set KDEDIR=$PWD/../kde
sleep 1
qpe
如果是先修改代碼再編譯運作的,可以直接運作成功,如果是按照錯誤提示一步一步修改, 運作時會提示錯誤無法找到: /dev/fb0 這個時候直接進入x86-qtopia-2.2.0/qtopia/image/root/setting/檔案夾 删除其中的qpe.conf檔案再次運作即可。。。。。。
**********************************
Qt2
**********************************1
/home/mantou/qt_study/qte/qtopia-free-2.2.0/qt2/include/qwindowsystem_qws.h:214: 警告:此聲明中的 ‘typedef’ 被忽略
/home/mantou/qt_study/qte/qtopia-free-2.2.0/qt2/include/qwindowsystem_qws.h:230: 錯誤:‘QWSInputMethod’未聲明
/home/mantou/qt_study/qte/qtopia-free-2.2.0/qt2/include/qwindowsystem_qws.h:237: 錯誤:‘QWSGestureMethod’未聲明
make[1]: *** [allmoc.o] 錯誤 1
make[1]: Leaving directory `/home/mantou/qt_study/qte/qtopia-free-2.2.0/qt2/src'
qtopia-free-2.2.0\qt2\src\kernel\qwindowsystem_qws.h
56 行
class QWSGestureMethod;
class QWSInputMethod;
********************************2
qtopia-free-2.2.0\qt2\src\tools\qvaluestack.h
/home/mantou/qt_study/qte/qtopia-free-2.2.0/qt2/include/qvaluestack.h:57: 錯誤:不能将‘int remove(const char*)’的實參‘1’從‘QValueListIterator’轉換到‘const char*’
this->remove( this->fromLast() );
********************************3
\qtopia-free-2.2.0\qt2\tools\qvfb\ qvfbview.cpp
//在Fedora 10中調用的頭檔案中找不到asm/page.h檔案,是以這裡人工添加page.h中的PAGE_SIZE變量的定義。
//#include 39行
45行
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE -1 ))
***********************************4
kernel/qpixmapcache.cpp:125:57: 錯誤:asm/page.h:沒有那個檔案或目錄
kernel/qpixmapcache.cpp: In constructor ‘QSharedMemoryManager::QSharedMemoryManager()’:
kernel/qpixmapcache.cpp:539: 錯誤:‘PAGE_SIZE’在此作用域中尚未聲明
kernel/qpixmapcache.cpp:539: 錯誤:‘PAGE_MASK’在此作用域中尚未聲明
kernel/qpixmapcache.cpp: In member function ‘void QSharedMemoryManager::internal_free(QSMemPtr)’:
kernel/qpixmapcache.cpp:773: 錯誤:‘PAGE_SIZE’在此作用域中尚未聲明
qtopia-free-2.2.0\qt2\src\kernel/qpixmapcache.cpp:773: 錯誤:‘PAGE_MASK’在此作用域中尚未聲明
//# include // PAGE_SIZE,PAGE_MASK,PAGE_ALIGN
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE -1 ))
********************************
qtopia
******************************5
`/home/mantou/qt_study/qte/qtopia-free-2.2.0/qtopia/src/libraries/qtopia'
qdawg.cpp:294: 錯誤:有多餘的限定‘QDawgPrivate::’在成員‘QDawgPrivate’上
**********************************6
qtopia-free-2.2.0\qtopia\src\libraries\qtopia\backend
backend/event.cpp:419: 錯誤:ISO C++ 認為有歧義,盡管第一個備選的最差類型轉換要好于第二個備選的最差類型轉換
while ( !static_cast(( i & day ) && i) <= Event::SUN ) {
************************************7
thumbnailview_p.h:81: 錯誤:有多餘的限定‘ThumbnailItem::’在成員‘paintItem’上
/home/mantou/qt_study/qte/qtopia-free-2.2.0/qtopia/src/libraries/qtopia2'
***************************************8
/home/mantou/qt_study/qte/qtopia-free-2.2.0/qtopia/src/libraries/qtopiapim
abtable_p.h:277: 錯誤:有多餘的限定‘PhoneTypeSelector::’在成員‘addType’上
***************************************9
../../../include/qtopia/pim/private/../../../../src/libraries/qtopiapim/numberentry_p.h:106: 錯誤:有多餘的限定‘NumberEntryDialog::’在成員‘eventFilter’上
****************************************10
/home/mantou/qt_study/qte/qtopia-free-2.2.0/qtopia/src/libraries/mediaplayer
videoviewer.cpp:52: 錯誤:有多餘的限定‘SimpleVideoWidget::’在成員‘SimpleVideoWidget’上
******************************11
qtopia-free-2.2.0\qtopia\src\applications\addressbook
ablabel.h:78: 錯誤:有多餘的限定‘AbLabel::’在成員‘decodeHref’上
***************************12
/home/mantou/qt_study/qte/qtopia-free-2.2.0/qtopia/src/games/minesweep
minefield.h:105: 錯誤:有多餘的限定‘MineField::’在成員‘setState’上
minefield.h:106: 錯誤:有多餘的限定‘MineField::’在成員‘placeMines’上
*******************************13
/home/mantou/qt_study/qte/qtopia-free-2.2.0/qtopia/src/settings/buttoneditor
buttoneditordialog.h:56: 錯誤:有多餘的限定‘ButtonEditorDialog::’在成員‘actionFor’上
**********************************14
qtopia-free-2.2.0\qtopia\src\settings\qipkg
packagewizard.h:106: 錯誤:有多餘的限定‘PackageWizard::’在成員‘current’上
***************************************15
qtopia-free-2.2.0\qtopia\src\plugins\inputmethods\keyboard
keyboard.h:60: 錯誤:有多餘的限定‘KeyboardPicks::’在成員‘KeyboardPicks’上
****************************************16
/home/mantou/qt_study/qte/qtopia-free-2.2.0/qtopia/src/plugins/decorations/polished
polished.h:58: 錯誤:有多餘的限定‘PolishedDecoration::’在成員‘drawBlend’上
*****************************************17
/home/mantou/qt_study/qte/qtopia-free-2.2.0/qtopia/src/server
inputmethods.cpp:86: 錯誤:有多餘的限定‘IMToolButton::’在成員‘IMToolButton’上