久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

qtopia安裝,交叉編譯

 昵稱14129940 2013-11-12
軟件版本:qtopia-free-2.2.0

一,、在/root/imx27/下解壓qtopia-free-src-2.2.0.tar.gz
tar -xzvf qtopia-free-src-2.2.0.tar.gz
cd /root/imx27/qtopia-free-2.2.0
./configure
make

得到本機(jī)運(yùn)行版本uic工具

在make的時(shí)候出現(xiàn)了大量的錯(cuò)誤,,具體為:
Q1:
backend/event.cpp: In static member function ‘static int Event::dayOfWeek(char)’:
backend/event.cpp:419:
error: ISO C++ says that these are ambiguous, even though the worst
conversion for the first is better than the worst conversion for the
second:
backend/event.cpp:419: note: candidate 1: operator
/home/henryfok/TrollTech/qt-2.3.10/include/qstring.h:312: note: candidate 2: int operator
解決辦法:
修改 qtopia-free-2.1.1/src/libraries/qtopia/backend/event.cpp 文件的第419行
將while ( !( i & day ) && i
while ( !static_cast(( i & day ) && i)
Q2:
/root/imx27/qtopia-free-2.2.0/qt2/include/qwindowsystem_qws.h:230: 錯(cuò)誤:‘QWSInputMethod’ 未聲明
/root/imx27/qtopia-free-2.2.0/qt2/include/qwindowsystem_qws.h:237: 錯(cuò)誤:‘QWSGestureMethod’ 未聲明
解決辦法:
找到文件:qwindowsystem_qws.h
在該文件的前面添加如下兩行:
class QWSInputMethod;
class QWSGestureMethod;
Q3:
/root/imx27/qtopia-free-2.2.0/qt2/include/qvaluestack.h:57: 錯(cuò)誤:不能從
‘QValueListIterator >’ 轉(zhuǎn)換到 ‘const
char*’,為實(shí)參 ‘1’(屬于 ‘int remove(const char*)’)
/root/imx27/qtopia-free-2.2.0/qt2/include/qvaluestack.h: In member function ‘T QValueStack::pop() [with T = QString]’:
xml/qxml.cpp:2532:   instantiated from here
/root/imx27/qtopia-free-2.2.0/qt2/include/qvaluestack.h:57:
錯(cuò)誤:不能從 ‘QValueListIterator’ 轉(zhuǎn)換到 ‘const char*’,,為實(shí)參 ‘1’(屬于
‘int remove(const char*)’)
解決辦法:
更改qt-2.3.2文件夾中src/tools/qvaluestack.h第57行源代碼:
remove (this->formLast() );
為:
this->remove (this->formLast() );
Q4:
qdawg.cpp:294: 錯(cuò)誤:有多余的限定 ‘QDawgPrivate::’ 在成員 ‘QDawgPrivate’ 上
解決辦法:
找到qdawg.cpp文件,,把其中的第294行修改為:
    ~QDawgPrivate()
    {
        delete memoryFile;
    }
Q5:
thumbnailview_p.h:81: 錯(cuò)誤:有多余的限定 ‘ThumbnailItem::’ 在成員 ‘paintItem’ 上
解決辦法:
   void ThumbnailItem::paintItem( QPainter*, const QColorGroup& );
修改為:    void paintItem( QPainter*, const QColorGroup& );
Q6:
abtable_p.h:277: 錯(cuò)誤:有多余的限定 ‘PhoneTypeSelector::’ 在成員 ‘a(chǎn)ddType’ 上
解決辦法:
QListViewItem* PhoneTypeSelector::addType(QListViewItem* prevItem,
        QString number, const char* pixmapName, PimContact::ContactFields phoneType);
修改為:
QListViewItem* addType(QListViewItem* prevItem,
        QString number, const char* pixmapName, PimContact::ContactFields phoneType);
Q7:
../../../include/qtopia/pim/private/../../../../src/libraries/qtopiapim/numberentry_p.h:106:
錯(cuò)誤:有多余的限定 ‘NumberEntryDialog::’ 在成員 ‘eventFilter’ 上
解決辦法:
    bool NumberEntryDialog::eventFilter(QObject *o, QEvent *e);
修改為:
bool eventFilter(QObject *o, QEvent *e);
Q8:
videoviewer.cpp:52: 錯(cuò)誤:有多余的限定 ‘SimpleVideoWidget::’ 在成員 ‘SimpleVideoWidget’ 上
解決辦法:
    SimpleVideoWidget::SimpleVideoWidget(QWidget *parent);
修改為:
    SimpleVideoWidget(QWidget *parent);
Q9:
ablabel.h:78: 錯(cuò)誤:有多余的限定 ‘AbLabel::’ 在成員 ‘decodeHref’ 上
解決辦法;
    bool AbLabel::decodeHref(const QString& href, ServiceRequest* req, QString* pm) const;
修改為:
    bool decodeHref(const QString& href, ServiceRequest* req, QString* pm) const;
Q10:
minefield.h:105: 錯(cuò)誤:有多余的限定 ‘MineField::’ 在成員 ‘setState’ 上
minefield.h:106: 錯(cuò)誤:有多余的限定 ‘MineField::’ 在成員 ‘placeMines’ 上
解決辦法:
修改為:
    void setState( State st );
    void placeMines();
Q11:
buttoneditordialog.h:56: 錯(cuò)誤:有多余的限定 ‘ButtonEditorDialog::’ 在成員 ‘a(chǎn)ctionFor’ 上
解決辦法:
    ServiceRequest ButtonEditorDialog::actionFor(int cur) const;
修改為:
ServiceRequest actionFor(int cur) const;
Q12:
packagewizard.h:106: 錯(cuò)誤:有多余的限定 ‘PackageWizard::’ 在成員 ‘current’ 上
解決辦法:
PackageItem* PackageWizard::current() const;
修改為:
PackageItem* current() const;
Q13:
keyboard.h:60: 錯(cuò)誤:有多余的限定 ‘KeyboardPicks::’ 在成員 ‘KeyboardPicks’ 上
解決辦法:
   KeyboardPicks::~KeyboardPicks();
修改為:
  ~KeyboardPicks();
Q14:
polished.h:58: 錯(cuò)誤:有多余的限定 ‘PolishedDecoration::’ 在成員 ‘drawBlend’ 上
解決辦法:
void PolishedDecoration::drawBlend( QPainter *, const QRect &r, const QColor &c1, const QColor&c2 ) const;
修改為:
void drawBlend( QPainter *, const QRect &r, const QColor &c1, const QColor&c2 ) const;
Q15:
inputmethods.cpp:86: 錯(cuò)誤:有多余的限定 ‘IMToolButton::’ 在成員 ‘IMToolButton’ 上
解決辦法:
IMToolButton::IMToolButton( QWidget *parent ) : QToolButton( parent )
修改為:
IMToolButton( QWidget *parent ) : QToolButton( parent )

上面提到的大部分錯(cuò)誤都是C++的錯(cuò)誤,,可能所列的錯(cuò)誤在每個(gè)人的環(huán)境中所顯現(xiàn)的錯(cuò)誤不一致,,大家仔細(xì)看看都是可以解決的。

二,、交叉編譯qtopia-free-2.2.0

2.1創(chuàng)建PDA安裝目錄
mkdir /root/imx27/qtopia
cd /root/imx27/qtopia-free-2.2.0
修改文件:
vim /root/imx27/qtopia-free-2.2.0/qt2/src/kernel/qwsmouse_qws.cpp
這個(gè)文件是修改校準(zhǔn)文件存放位置的,,如果是可讀寫的文件系統(tǒng),可以不需要修改,。
修改文件:
vim /root/imx27/qtopia-free-2.2.0/qtopia/mkspecs/qws/linux-arm-g++/qmake.conf
將此行
QMAKE_LIBS_QT = -lqte
修改為:
QMAKE_LIBS_QT = -lqte -lpng -lts -lz -luuid -ljpeg

2.2 創(chuàng)建編譯環(huán)境
export QTDIR=/root/imx27/qtopia-free-2.2.0/qt2
export QPEDIR=/root/imx27/qtopia-free-2.2.0/qtopia
export LD_LIBRARY_PATH=$QTDIE/lib:$QPEDIR/lib:$LD_LIBRARY_PATH
export TMAKEDIR=/root/imx27/qtopia-free-2.2.0/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
在/root/imx27/qtopia-free-2.2.0/qtopia/src/qt/qconfig-qpe.h的末尾加上,,
#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW
這是使qt自己支持觸摸屏,。
cp /root/imx27/qtopia-free-2.2.0/qtopia/src/qt/qconfig-qpe.h /root/imx27/qtopia-free-2.2.0/qt2/src/tools

cd $QPEDIR/src/libraries/qtopia
cp custom-linux-ipaq-g++.cpp custom-linux-arm-g++.cpp
cp  custom-linux-ipaq-g++.h custom-linux-arm-g++.h

2.3
configure 配置:
./configure -qte "-embedded -xplatform
linux-arm-g++ -qconfig qpe -no-qvfb -depths 16,24 -system-jpeg
-system-libpng -system-zlib -tslib -gif -thread -no-xft -release
-I/root/imx27/arminclude -L/root/imx27/armlib -lpng -lts -lz -luuid
-ljpeg" -qpe '-xplatform linux-arm-g++ -edition pda -displaysize
800x480 -I/root/imx27/arminclude -L/root/imx27/armlib
-prefix=/root/imx27/qtopia'
make
make install
安裝后的文件在/root/imx27/qtopia中。
通過上面產(chǎn)生uic的一些操作,,使得產(chǎn)生的錯(cuò)誤就比較少了,。
不過還可能產(chǎn)生jpeg的一些頭文件或者是tslib的一些頭文件活著是庫(kù)文件找不到,這時(shí)候只需要把前面編譯通過的jipeg的頭文件以及庫(kù)
文件分別放在/root/imx27/arminclude和/root/imx27/armlib中即可,,大部分的錯(cuò)誤都是可以這樣的解決的,。
三、測(cè)試
3.1 拷貝庫(kù)和測(cè)試程序
mkdir /root/imx27/qtopia/bin/tests
mkdir /root/imx27/qtopia/lib/ts
cp /root/imx27/tslib-1.3/test/.libs/ts_* /root/imx27/qtopia/bin/tests
cp /root/imx27/tslib-1.3/src/.libs/libts_0.0.so.0* /root/imx27/qtopia/lib
cp /root/imx27/tslib-1.3/src/.libs/libts.so /root/imx27/qtopia/lib
cp /root/imx27/tslib-1.3/plugins/.libs/*.so /root/imx27/qtopia/lib/ts
cp /roo    t/imx27/armlib/*.so* /root/imx27/qtopia/lib //所有需要的支持的庫(kù)文件
將qtopia復(fù)制到nfs目錄
cp -r /root/imx27/qtopia /home/yuehy/rootfs
注意:把文件/root/imx27/tslib-1.3/etc/ts.conf拷貝到板子的/etc目錄下
3.2 環(huán)境變量設(shè)置
  在開發(fā)板上進(jìn)行環(huán)境變量設(shè)置
export QTDIR=/qtopia
export QPEDIR=/qtopia
export QWS_MOUSE_PROTO=TPanel:/dev/ts
export LD_LIBRARY_PATH=/qtopia/lib
export TSLIB_TSEVENTTYPE=H3600  //對(duì)tslib中的設(shè)備結(jié)構(gòu)體定義
export TSLIB_CONSOLEDEVICE=none //tslib運(yùn)行需要的控制臺(tái),,這里就是LCD屏幕 ,設(shè)定控制臺(tái)設(shè)備為none,,否則默認(rèn)為/dev/tty
export TSLIB_FBDEVICE=/dev/fb0  //指定幀緩沖設(shè)備
export TSLIB_TSDEVICE=/dev/ts //指定開發(fā)板對(duì)應(yīng)觸摸屏設(shè)備節(jié)點(diǎn)文件
export TSLIB_CALIBFILE=/etc/pointercal //指定觸摸屏校準(zhǔn)文件pintercal的存放位置,注意目錄的讀寫權(quán)限,。
export TSLIB_CONFFILE=/etc/ts.conf //指定TSLIB配置文件的位置
export TSLIB_PLUGINDIR=$QTDIR/lib/ts //指定觸摸屏插件所在路徑
在設(shè)置好以上的環(huán)境變量后對(duì)觸摸屏進(jìn)行校驗(yàn)
cd /qtopia/etc/bin/tests
./ts_calibrate
陸續(xù)在LCD的4個(gè)角和中點(diǎn)出現(xiàn)光標(biāo),,點(diǎn)擊光標(biāo)進(jìn)行校準(zhǔn),生成校準(zhǔn)文件
校驗(yàn)文件產(chǎn)生以后,,就可以對(duì)運(yùn)行qpe程序了,。
cd /qtopia/etc/bin
./qpe.

另:在編譯過程可能產(chǎn)生各種各樣的錯(cuò)誤,其實(shí)都是仔細(xì)看看都是都是可以解決的,,自己做的就是根據(jù)網(wǎng)絡(luò)上的資料,,自己重新走了一遍。
自己還遇到了一個(gè)不常見的錯(cuò)誤:
在包含自 3rdparty/opentype/ftxopentype.c:3 的文件中:
3rdparty/opentype/ftxopen.c:18:40: 錯(cuò)誤:freetype/internal/ftstream.h:沒有那個(gè)文件或目錄
3rdparty/opentype/ftxopen.c:19:40: 錯(cuò)誤:freetype/internal/ftmemory.h:沒有那個(gè)文件或目錄
3rdparty/opentype/ftxopen.c:20:39: 錯(cuò)誤:freetype/internal/tttypes.h:沒有那個(gè)文件或目錄
之所以產(chǎn)生這個(gè)問題是由于開發(fā)機(jī)本身的freetype版本與qtopia所使用的版本不一致所造成的,,qtopia-free-2.2.0所需要的freetype的版本為:freetype-2.1.10
解決辦法:
解決這個(gè)問題有兩種方法,,一是卸載系統(tǒng)本上的freetype庫(kù),重新編譯安裝版本為:freetype-2.1.10,,(我看了下我的版本事2.1.9)如果主機(jī)系統(tǒng)本來的版本比2.1.10高的話,,那么編譯后的freetype-2.1.10放在一個(gè)臨時(shí)目錄里面就可以了,在交叉編譯qtopia的時(shí)候,,引用到這個(gè)庫(kù)文件就可以了,。
PS:原文:http://blog./u/25572/showart_1334472.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多