嵌入式成长轨迹34 【嵌入式学习阶段】【ARM环境调试】【QT 移植环境及简单程序示例】---补充《ok6410 Qt移植百科全书》...
更新版
http://www.cnblogs.com/zeedmood/archive/2012/12/08/2808393.html
?
書上提及的有這些,分別說明下,里邊打*可以不弄:
? Tslib1.4的編譯 用于編譯觸控模塊。自己的虛擬機上需要有這個。但如果板子文件系統(tǒng)/usr/local里邊已經(jīng)有tslib了,那可以不用再移動進去——這里編譯的tslib是給Qtopia4.4.3用的,如果換成4.4.3打開不了觸控的話,也可先用2.2.0系統(tǒng)打開,過了觸控調(diào)試之后再換回4.4.3.或者使用飛凌自帶的校準腳本,使用方法在里邊有提及
? Qtopia4.4.3、*Qtopia2.2.0的編譯 用于板子內(nèi)系統(tǒng)界面。弄了Qtopia4.4.3的話,Qtopia2.2.0就可以不用了,但是前者一定要,到后期編譯還得用上。
? Qt/E4.7的編譯 這個還是要在虛擬機上布置,編譯時間也會比較長,大概2、3小時
?
那本《ok6410 Qt移植百科全書》確實沒提及的問題比較多,接下來我給補充下:
【問題如下】
配置安裝參數(shù)
root@ubuntu:~/Desktop/tslib/tslib# ./configure --host=arm-linux??????? --cache-file=arm-linux.cache?????????????????????????????????????????? --enable-inputapi=no?????????????????????????????????????????????????? PLUGIN_DIR=/usr/local/arm/tslib/plugins??????????????????????????????? -prefix=/usr/local/arm/tslib/build???????????????????????????????????? -host=arm-linux??????????????????????????????????????????????????????? --cache-file=arm-linux.cache 2>&1 | tee conf_log
configure: WARNING: unrecognized options: --enable-inputapi
configure: WARNING: if you wanted to set the --build type, don't use --host.
??? If a cross compiler is detected then cross compile mode will be used
configure: loading cache arm-linux.cache
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
……
configure: WARNING: unrecognized options: --enable-inputapi
將 --enable-inputapi=no 改為 --enable-input=no 錯誤消除,但不知對不對
?
make[1]: g++: Command not found
make[1]: *** [project.o] Error 127
configure exited with value 2 at /witech/qt-extended-4.4.3/src/build/bin/configure line 5215
?main::bootstrap_qt() called at /witech/qt-extended-4.4.3/src/build/bin/configure line 1784
make: *** [src/build/mkconf/configure] Error 2
./build: line 53: bin/qbuild: No such file or directory
./build: line 54: bin/qbuild: No such file or directory
解決:
安裝g++
?
?
在編譯qt-extended-4.4.3的config階段,出現(xiàn)以下錯誤后退出:
Checking the compiler (host): OK (GCC 4, Little Endian)
Checking the compiler (target): FAIL
Note: Run configure -verbose for verbose errors
make: *** [src/build/mkconf/configure] Error 1
解決方法:
這表明你的編譯器安裝的路徑不對!
用arm-linux-gcc -v查看正確的交叉編譯器安裝路徑,輸出的文本中有一項是:
--prefix=/usr/local/arm/4.1.2
表示,你的交叉編譯正確的安裝路徑是/usr/local/arm/4.1.2
你應(yīng)該把/usr/local/arm/4.1.2/bin加入到PATH環(huán)境變量中去!
?
?
修改環(huán)境變量,把交叉編譯器的路徑加入到PATH?!?br />?(虛擬機/主機)方法一:
??修改/etc/bash.bashrc文件 #vim /etc/bash.bashrc???????????? 在最后加上:
??export PATH=$PATH:/usr/local/arm/3.4.1/bin (注意修改版本、、、)
??export PATH
?(開發(fā)板)方法二:
??修改/etc/profile文件:????????
??# vim /etc/profile 增加路徑設(shè)置,在末尾添加如下,保存/etc/profile文件:??
??export PATH=$PATH:/usr/local/arm/3.4.1/bin
?方法三:
??#export PATH=$PATH:/usr/local/arm/3.4.1/bin ????????
??注:(這只能在當前的終端下才是有效的!)
立即使新的環(huán)境變量生效,不用重啟電腦:
?對應(yīng)方法一:#source /root/.bashrc
?對應(yīng)方法二:# source /etc/profile
檢查是否將路徑加入到PATH:
?# echo $PATH
?顯示的內(nèi)容中有/usr/local/arm/bin,說明已經(jīng)將交叉編譯器的路徑加入PATH。
測試交叉編譯命令和工具版本
??????? # arm-linux-gcc -v
至此,交叉編譯環(huán)境安裝完成。
?
?
bash: export: `PATH=/usr/local/arm/4.3.2/bin:……': not a valid identifier
解決BASH SHELL腳本報錯 ‘: not a valid identifier
當在shell編輯腳本時,運行時出現(xiàn)了" ‘: not a valid identifier ",或者會出現(xiàn)(: command not found,許多莫名其妙的符號)很可能你在windows下編輯,在Linux下運行,由于Linux和windows的文本格式不同所導(dǎo)致的。上面可能是反應(yīng)之一,有時終端顯示" :沒有文件…"也是這個原因造成的 大部分由分號開頭":"
解決方法:只要用UltraEdit工具轉(zhuǎn)換成Linux格式,重新source運行無錯誤即可;或者還是老老實實在linux下打一遍吧、、
?
?
當在windows下的多用戶(例如在一個用戶里安裝程序,而在另一個用戶里使用),或虛擬機中的Linux下也出現(xiàn)過這樣的情況,就是安裝完Qt Creator后運行程序,出現(xiàn)No valid Qt version set 的問題
解決方法:
以下幾個步驟:
1、/etc/bash.bashrc后追加設(shè)置環(huán)境變量
?#qt
?export PATH=/opt/qt-4.7.1/bin:/opt/qt-4.7.1/lib:$PATH
2、打開上方菜單Tools->options,左邊選擇build and run,之后在里邊將qmake、gcc添加
auto detected的就不用管了,要的話就添加
Qt Versions
? Qt 4.7.1 (qt-4.7.1) /opt/qt-4.7.1/bin/qmake
在QT creator版本中手動加入了編譯好的ARM版本,此時提示沒有工具鏈,左邊顯示為紅色嘆號
Tool Chains
? GCC-arm /usr/local/arm/4.3.2/bin/arm-linux-gcc-4.3.2
? GCC /usr/bin/gcc-4.6
同時在工具鏈中加入/usr/local/arm/4.3.2/bin/arm-linux-g++編譯器路徑后,提示沒有安裝qmlviewer,左邊顯示為黃色嘆號。
3、在主頁面左邊菜單欄project那里,開起來就在第一種build&run方式里邊,將qt版本和工具鏈都選上(如果要在電腦上運行,就得用里邊配搭的Qt4.8而不是用4.7.1)。如果無法選擇,就跳到第二種,嘗試manage選上各個版本和工具鏈使之激活,再回第一種就出現(xiàn)可以選擇了(、、、不要問我為什么,我也是走投無路、、、也許關(guān)掉qt creator再重啟也行)。選好之后退出,在主頁面build,運氣好此時就能成功了。
4、還不能執(zhí)行
/code/Helloword/moc_dialog.cpp:16: error: #error "(The moc has changed too much.)"
如果本來有一些生成的配置文件,用make clean甚至make distclean刪除,再試。?
Starting /witech/Helloword/Helloword...
Failed to start program. Path or permissions wrong?
/witech/Helloword/Helloword exited with code -1
解決:將權(quán)限改為777,或者用make clean刪除一些多余文件
?
?
***沒有規(guī)則可以創(chuàng)建“XXX”需要的目標“XXX”問題的解決方案
解決:
make clean 再不行就用make distclean
make clean 和make distclean的區(qū)別:make clean僅僅是清除之前編譯的可執(zhí)行文件及配置文件。而make distclean要清除所有生成的文件。make distclean類似make clean,但同時也將configure生成的文件全部刪除掉,包括Makefile。
上面的問題的根源是因為,經(jīng)過拿來主義的代碼里面已經(jīng)有配置文件,是根據(jù)原來的編譯環(huán)境生成的,僅僅通過make clean并不能清楚之前的配置文件,沒有清除之前的配置文件就進行編譯,編譯器本著相信程序員的態(tài)度,編譯時不會產(chǎn)生新的configure生成的附帶文件,而是根據(jù)原來的configure生成的文件進行編譯,這樣就會導(dǎo)致上面的一系列編譯錯誤。make distclean可以將所有的垃圾,之前環(huán)境所有的余孽清理干凈,這樣就不會給編譯器偷懶的機會。
?
?
QT編譯問題:/usr/local/Trolltech/Qt-4.7.0/bin/uic:命令未找到
解決:
??? 我在linux下安裝了QT之后,將在windows下寫的程序拷貝到linux下,然后運行qmake命令,沒有問題,當運行make命令的時候,出現(xiàn)了編譯錯誤,如下:
/usr/local/Trolltech/Qt-4.7.0/bin/uic:命令未找到
?????? 錯誤的大體意思就是沒有找到那個需要使用的在指定文件夾下的可執(zhí)行文件uic,我到我的/usr/local目錄下沒有找到Trolltech這個目錄,因為我安裝QT 的目錄是qt-everywhere,于是為了使編譯器能夠找到它需要的那個命令,我將在/usr/local目錄下建立一個軟連接,直接指向編譯器需要的目錄。
具體做法如下:首先在/usr/local目錄下建立一個文件夾Trolltech,然后進入這個文件夾,再執(zhí)行下面的這個命令,
ln -s? /usr/local/qt-everywhere?? Qt-4.7.0
這樣由Qt-4.7.0就可以找到bin目錄下的uic可執(zhí)行文件了。
?
?
qmake后出現(xiàn)錯誤 qt_config.prf:10: include(file) requires one argument.
解決:
環(huán)境變量設(shè)置的問題,將QMAKESPEC修改下或刪掉
?
?
用qmake正常,之后再make的話,會有這樣的錯誤信息
?from dialog.cpp:1:
?/witech/qt-extended-4.4.3/qtopiacore/qconfig-qpe.h:1:91: error: http://www.cnblogs.com/http://www.cnblogs.com/../qt-?extended-4.4.3/qtopiacore/qt/src/corelib/global/qconfig-qpe.h: No such file or directory
?make: *** [dialog.o] 錯誤 1
用Qt Creator(在tools->options中添加arm用qmake)的話,在最后也同樣能得到這樣的錯誤信息:
?/witech/qt-extended-4.4.3/qtopiacore/qconfig-qpe.h:1: error: http://www.cnblogs.com/http://www.cnblogs.com/../qt-?extended-4.4.3/qtopiacore/qt/src/corelib/global/qconfig-qpe.h: No such file or directory
不過這次從第一行能看到錯誤,似乎在 In file included from /witech/builddir/sdk/qtopiacore/qconfig-qpe.h:1,雙擊該錯誤直接跳到/witech/builddir/sdk/qtopiacore/qconfig-qpe.h:1:
?#include "/witech/qt-extended-4.4.3/qtopiacore/qconfig-qpe.h"
這個路徑是錯誤的,里邊沒有這個文件。
于是在硬盤里找了很久之后,才發(fā)現(xiàn)真的沒有、、、
后來才突然想起來,會不會是之前的一個操作,把文件誤刪了呢?因為qt-extended-4.4.3和builddir當時都在,前者打開里邊的東西后者好像都有,就順手把前者給刪了、、、估計因為這樣、、才出事的
手賤沒辦法,還是重新編譯一個吧、、、三小時啊、、、
?
因為誤刪所以重裝、、、qt-extended-4.4.3,結(jié)果:
http://www.cnblogs.com/../qt-extended-4.4.3/qbuild/src/main.cpp:49:33: warning: ignoring return value of 'int chdir(const char*)', declared with attribute warn_unused_result [-Wunused-result]
make[1]: *** [main.o] Error 1
make exited with value 2 at /witech/qt-extended-4.4.3/src/build/bin/configure line 2355
make: *** [src/build/mkconf/configure] Error 1
./build: 行 53: bin/qbuild: 沒有那個文件或目錄
./build: 行 54: bin/qbuild: 沒有那個文件或目錄
解決:
“我用的是ubuntu11.04的,我安裝了g++編譯器后,再把qt creator卸掉,就可以了,另外,可以用g++ -v查看g++編譯器是否已安裝”
之后還是不行、、、哎、、、只好直接重裝系統(tǒng)了、、、(其實我后來懷疑應(yīng)該先卸掉g++,再重裝,不過已經(jīng)沒勇氣再看到出現(xiàn)這個錯誤了)
這周全部工作推翻重來,誤刪害人啊、、、
?
?
ubuntu 如何卸載qt creator
解決:
假如你是通過軟件中心或者apt安裝的。可以在軟件中心-》所有軟件(點已安裝會很慢的)里面找到,然后點擊卸載。
或者在命令行:sudo apt-get remover qtcreator
假如你是從諾基亞或者論壇下載的qt的二進制安裝包安裝的。
進入qt的安裝目錄默認是/opt/Qt...
然后用管理員權(quán)限運行SDKManger,選擇removed all compoent單選框,確定。即可。
?
?
這個是百科全書里邊有提及的,不過還是mark一下:
qmake之后立即make;或者使用QtCreator進行構(gòu)建,會發(fā)生錯誤
moc_dialog.o:(.rodata+0x11c): undefined reference to `typeinfo for QDialog'
collect2: ld returned 1 exit status
make: *** [Helloword] Error 1
解決:
要修改下Makefile,在CFLAGS和CXXFLAGS中添加" -fno-rtti "編譯參數(shù),保存退出,之后編譯就可以通過了。
?
這個按照書上說的設(shè)置還是不行
./Helloword: error while loading shared libraries: libQtGui.so.4: cannot open sh
ared object file: No such file or directory
解決:
其實libQtGui.so.4這個文件是有的,只是要設(shè)好環(huán)境變量。書上沒有添加LD_LIBRARY_PATH
然后不知道為何在里邊用腳本卻改不了環(huán)境變量,只有在/etc/profile里固化了、、、
重新設(shè)置開發(fā)板的環(huán)境變量為(/etc/profile):
#Qt
export PATH='/opt/Qtopia4.4.3/lib:/opt/Qtopia4.4.3/bin:/sbin:/usr/sbin:/bin:/usr/bin'
export QPEDIR='/opt/Qtopia4.4.3'
export QTDIR='/opt/Qtopia4.4.3'
export QT_QWS_FONTDIR='/opt/Qtopia4.4.3/lib/fonts'
export QWS_DISPLAY='LinuxFb:mmWidth152:mmHeight88:1'
export QWS_MOUSE_PROTO='Tslib:/dev/input/event1'
export TSLIB_CALIBFILE='/etc/pointercal'
export TSLIB_CONFFILE='/usr/local/tslib/etc/ts.conf'
export TSLIB_CONSOLEDEVICE='none'
export TSLIB_FBDEVICE='/dev/fb0'
export TSLIB_PLUGINDIR='/usr/local/tslib/lib/ts'
export TSLIB_ROOT='/usr/local/tslib'
export TSLIB_TSDEVICE='/dev/input/event1'
export TSLIB_TSEVENTTYPE='H3600'
export QT_PLUGIN_PATH='/opt/Qtopia4.4.3/plugins:/opt/Qtopia4.4.3/qt_plugins/'
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:$QTDIR/qt_plugins/:/usr/local/lib:$LD_LIBRARY_PATH
?
?
也談Qt經(jīng)典出錯信息之QApplication: No such file or directory
http://blog.csdn.net/qter_wd007/article/details/5377131
這個問題似乎是老生常談了,好多朋友也都就這個問題做了探究,這里我說說我的看法,以及對于初學者而言,如何快速定位問題,快速解決問題,
下面是網(wǎng)友zhu的完整闡述:
這個出錯信息一般是新手在編譯Qt4第一個應(yīng)用”Hello,World”的時候,翻開Qt編程的第一個例子。都說很簡單。
#include <QApplication>
#include <QWidget>
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QWidget *ww=new QWidget();
ww->resize(300,200);
ww->show();
return app.exec();
}
一編譯結(jié)果出現(xiàn)了上面這個錯誤,那叫一個郁悶。
其實花點心思照著提示,新手也是可以自己解決問題的。根據(jù)提示QApplication提示,應(yīng)該是頭文件沒找到。那我們可以查看當前目錄下Makefile里的環(huán)境變量INCPATH知道m(xù)ake應(yīng)用是去哪里找頭文件的。例如
./Makefile 文件部分內(nèi)容
15 CXXFLAGS????? = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
16 INCPATH?????? = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I.
17 LINK????????? = g++
第16行里面的,對應(yīng)的去查找/usr/include/qt4/QtGui/QApplication這個文件是否存在(一般是不存在,存在就不會出錯了)。不存在QApplication文件的原因大致有兩個
1)沒有裝Qt4的開發(fā)包 .
解決辦法把開發(fā)包裝上,比如ubuntu下就是在shell里執(zhí)行sudo install libqt4-dev;Fedora/SUSe下是在shell里執(zhí)行sudo yum install qt4-devel
2) Qt4的開發(fā)包裝了,但是調(diào)用了Qt3的qmake
因為有的系統(tǒng)里既裝了Qt3,又裝了Qt4。如果調(diào)用了qt3的qmake,那么上頭的INCPATH里的頭文件路徑也指向了Qt3,那么是找不到 QApplication這個文件的。對應(yīng)的解決方法就是調(diào)用Qt4安裝路徑下的qmake去生成Makefile,最好用全路徑。我的機器Qt4中 qmake安裝路徑是
zhu@ubuntu:~/test/widget$ dpkg -L qt4-qmake |grep qmake |grep bin
/usr/bin/qmake-qt4
/usr/share/qt4/bin/qmake
所以只要執(zhí)行
/usr/bin/qmake-qt4;make 或者 /usr/share/qt4/bin/qmake:make
都能以Qt4的文件去編譯這個最簡單的Qt4應(yīng)用。
原文鏈接:http://www.cuteqt.com/blog/?p=307
對于新學習Qt朋友而言,其實只要了解了這些內(nèi)部緣由即可,這種情況一般就是環(huán)境變量沒有設(shè)置正確的原因。
一是根本就沒有設(shè)置環(huán)境變量,比如使用SDK方式安裝Qt,但卻又不使用Qt Creator作為IDE(Qt Creator在運行時會自動為開發(fā)者設(shè)置好環(huán)境),而是使用其他的IDE或者是vim等來做開發(fā),這樣自然就會爆出這個錯誤。
二是設(shè)置了環(huán)境變量卻又沒有設(shè)置正確。比如在X11下,設(shè)置好環(huán)境變量之后,需要重新登錄shell,如果不這樣做而直接開始開發(fā),一般有可能會報出這個錯誤。
三是系統(tǒng)中同時存在多個版本的Qt。比如有Qt3和Qt4共存,有多個不同版本Qt4存在,這樣就需要考慮一是清理一下環(huán)境,使用一個“純凈”的Qt4環(huán)境;1是如果在Windows上,可以思考是否有必要同時存在這么多的版本,如果沒有實在的必要,統(tǒng)一即可,當然這也是在打造一個“純凈”的Qt4環(huán)境;2是如果是在X11上,由于Qt3的存在有可能是系統(tǒng)的需要,系統(tǒng)中有好多的包是依賴Qt3的,那么要不每次在不同的Qt版本間切換時,就變更一下環(huán)境變量的設(shè)定,要么為各個Qt版本設(shè)定為不同的用戶使用,每個用戶都有唯一的環(huán)境了;要么就是使用腳本,做法是為每個qt版本寫設(shè)置環(huán)境變量的腳本, 僅在需要的時候?qū)Ξ斍皊hell設(shè)置環(huán)境,這種做法對于初學者而言有一定難度,但是效果還是比較好的。
好了,這個問題我想大概總結(jié)的比較清楚了,供大家參考,如果還有更多的情況,也請補充,我們共同找到最佳的解決方案。
?
?
Qt4.3.5-X11-交叉編譯平臺的搭建、移植詳解
http://linux.chinaunix.net/techdoc/develop/2009/04/26/1109010.shtml
?
首先我們要知道的是Qt平臺有Pc開發(fā)平臺,(以本人所裝的Redhat9linux/Qt4.3.5/arm-3.4.1版本為例)
一、Qt嵌入式開發(fā)平臺的建立
概述:Qt嵌入式開發(fā)平臺包括:
1、Qt-X11開發(fā)平臺:(即為我們平時開發(fā)Qt應(yīng)用程序時使用的系統(tǒng)平臺)。
2、QtopiaCore-4.3.5開發(fā)平臺(即framebuffer):該平臺可以讓Qt程序在pc機上模擬在嵌入式平臺的運行情況,一般在QtopiaCore上模擬運行成功后才,進行交叉編譯。
3、QtopiaCore-4.3.5-arm交叉編譯平臺:在此平臺下編譯通過的Qt程序就可以移植到arm板上運行了。
step1:
?? 建立Pc開發(fā)平臺(x11、redhat9的桌面就屬于X11):
?? 下載Qt4.3.5pc開發(fā)包qt-x11-opensource-src-4.3.5.tar.gz
?? #tar xzvf qt-x11-opensource-src-4.3.5.tar.gz
?? #cd Qt-4.3.5
?? #./configure??? //
?? #make install?? //此過程需要3-8小時
?? 安裝好后,系統(tǒng)默認安裝在/usr/local/Trolltech/Qt-4.3.5目錄下
?? 檢查環(huán)境變量:
?? #which qmake??
????
step2:
?? 建立QtopiaCore-4.3.5編譯平臺(此時編譯器仍然用的是默認的gcc)
?? 此平臺下的安裝包原碼包和X11平臺是一樣的,只是configure時配置不同
?? #tar xzvf qt-x11-opensource-src-4.3.5.tar.gz
?? #cd Qt-4.3.5
?? #./configure -embedded x86 -qvbf -no-openssl? //注意幾個選項表示,以qvfb表示??? -no-openssl表示不需要認證,否則會安裝過程中一直叫你輸入yes確認
?? #make install???????? //此過程需要3-8個小時
?? 安裝完成后usr目錄多了一個文件夾/usr/local/Trolltech/QtopiaCore-4.3.5就表示安裝成功了
?
step3:
?? QtoptiaCore-4.3.5-arm交叉編譯平臺的建立(此時不是用系統(tǒng)默認的gcc來編譯了)
?? 此平臺下的安裝源碼包X11平臺是一樣的,只是configure時配置不同
?? #tar xzvf qt-x11-opensource-src-4.3.5.tar.gz
?? #cd Qt-4.3.5
?? #./configure -embedded arm?? //注意幾個選項,必須加上 -embedded arm選項
?? #make install???????? //此過程需要3-8個小時
?? 安裝完成后usr目錄多了一個文件夾/usr/local/Trolltech/QtopiaCore-4.3.5-arm就表示安裝成功了
??
step4:
?? 設(shè)置環(huán)境變量:環(huán)境變量的設(shè)法總的說來有4種(export、profile、.bashrc、.bashrc_profile)具體看自己情況來定
?? #vi /root/.bash_profile? //在環(huán)境變量的最前面加上一句:PATH=/usr/local/Trolltech/QtopiaCore-4.3.5-arm/bin:$PATH
?? #source /root/.bash-Profile?? //使環(huán)境變量生效
??
?? 好了平臺已經(jīng)搭建好了,可以用他來編譯Qt程序了
??
step5:
?? 用QtopiaCore-4.3.5-arm來進行交叉編譯
?? #qmake -v? //檢查自己的qt環(huán)境變量是否正確,如果不正確的話,就返回第4步
?? #cd myqtprogram?? //進入自己寫的qt程序
?? #qmake -project?? //根QtX11環(huán)境一樣編譯
?? #qmake
?? #./myqtprogram??? //運行程序
??
step6:
?? 察看自己寫的Qt程序需要用到哪些庫文件資源。
?? #arm-linux-readelf -a -myqtprogram | grep Shared? //Shared首字母大寫;
??
step7:
?? 拷貝庫文件:
?? 根據(jù)上一步提示把Qt程序要用到的資源文件拷到自己制作的根文件系統(tǒng)中,以下是按本人寫的Qt程序所需要的庫寫的
?? 將程序移植到arm板運行,根文件系統(tǒng)root.cramfs和kernel的制作在這里就不細說了,本人用的是自己早做好的qt-root文件系統(tǒng)。
?? 拷貝庫文件到自己制作的root系統(tǒng)中(注意:拷貝時一定要看看大小,千萬不要拷到連接文件(相當于快捷方式)了)
?? #cd qt-root
?? #cd usr/lib??? //注意這里不要進到pc機linux的usr目錄下去了
?? #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libpng*? ./????????????????? //把圖形庫考過去,否則圖片顯示不了,強烈建議用png、bmp格式的圖片,用其他格式的圖片的話,否則你還要自己做連接庫
?? #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libQtCore.so libQtGui.so? ./???? //這2個庫不用說一定要考的
?? #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libQtNetwork.so? ./?????????? //和網(wǎng)絡(luò)相關(guān)的庫
?? #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libstdc++.so? ./
?? #cd ../??? //以下是在根文件系統(tǒng)qt-root/usr/local/下制增加一個Trolltech/QtopiaCore-4.3.5-arm/lib/fonts路徑目錄并添加相應(yīng)的字體文件,否則在arm板上會出錯顯示不了字
?? #mkdir local/Trolletch
?? #mkdir local/Trolletch/Qtopia-4.3.5-arm
?? #mkdir local/Trolletch/Qtopia-4.3.5-arm/lib
?? #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/fonts local/Trolletch/Qtopia-4.3.5-arm/lib? //注意不要拷錯路徑了
step8:
?? 把程序下載到arm板運行(注意:本人是用的microsoft的附件/通訊工具/超級終端連接到板子上,以下的操作對象都是在板子上了)
?? #./ln -s /dev/fb/0 /dev/fb0? //由于本人的板子上燒的root文件系統(tǒng)顯示設(shè)備名稱和路徑都不匹配,所以只有給他做個連接了,否則運行時會提示找不到fd0
?? #./myqtprogram -qws?? //-qws表示以服務(wù)器模式運行
?? ok能在板子上跑起來了
轉(zhuǎn)載于:https://www.cnblogs.com/zeedmood/archive/2012/08/14/2638325.html
總結(jié)
以上是生活随笔為你收集整理的嵌入式成长轨迹34 【嵌入式学习阶段】【ARM环境调试】【QT 移植环境及简单程序示例】---补充《ok6410 Qt移植百科全书》...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: skb里的数据
- 下一篇: iPhone编程的一些技巧总结