天天看點

Qtopia-2.2.2在x86平台編譯--錯誤修改總彙

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’上

繼續閱讀