亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1815 | 回復(fù): 0
打印 上一主題 下一主題

ubuntu下移植QT基本流程 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-01-17 19:43 |只看該作者 |倒序?yàn)g覽
配置tftp
配置tftp服務(wù)的步驟:
1、安裝相關(guān)軟件包:tftpd(服務(wù)端),tftp(客戶端),xinetd
sudo apt-get install tftpd tftp xinetd
2、建立配置文件
在/etc/xinetd.d/下建立一個(gè)配置文件tftp
sudo vi tftp
在文件中輸入以下內(nèi)容:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
保存退出
3、建立tftp服務(wù)文件目錄(上傳文件與下載文件的位置),并且更改其權(quán)限
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot -R
4、重新啟動(dòng)服務(wù)
sudo /etc/init.d/xinetd restart
至此tftp
服務(wù)已經(jīng)安裝完成了,下面可以對其進(jìn)行一下測試。(假設(shè)在當(dāng)前目錄下有一個(gè)測試文件
test.txt)
$tftp 127.0.0.1                     
tftp> put test.txt
Sent 1018 bytes in 0.0 seconds
tftp> get test.txt
Received 1018 bytes in 0.1 seconds
tftp> quit
$
  
通過put命令,可以把當(dāng)前目錄下的test.txt文件,通過tftp上傳到它的服務(wù)文件目錄。這時(shí),在/tftpboot下面會(huì)出現(xiàn)test.txt文件。通過get命令,可以從/tftpboot下,下載test.txt文件。這樣就驗(yàn)證了tftp服務(wù)配置的正確性。當(dāng)文件上傳與下載結(jié)束后,可以通過quit命令退出。
  
嚴(yán)格按照以上步驟配置tftp服務(wù),一般都可以成功。如果出現(xiàn)無法get或者put的時(shí)候,可以查看一下防火墻是否關(guān)閉。

安裝配置nfs服務(wù)器

在ubuntu下安裝、配置nfs服務(wù)的步驟如下:
1、安裝nfs
Ubuntu上默認(rèn)是沒有安裝nfs服務(wù)器的,因此我們首先安裝nfs服務(wù)器端:
$sudo apt-get install nfs-kernel-server
在一些文檔中,提出還需要使用apt-get來手動(dòng)安裝nfs的客戶端nfs-common,以及端口映射器portmap,但其實(shí)這是沒有必要的,因?yàn)樵诎惭bnfs-kernel-server時(shí),apt會(huì)自動(dòng)為我們把它們安裝好。
  
2、配置/etc/exports
nfs允許掛載的目錄及權(quán)限在文件/etc/exports中進(jìn)行了定義。例如,我們要將根目錄下的rootfs目錄共享出來,那么我們需要在/etc/exports文件末尾添加如下一行:/rootfs *(rw,sync,no_root_squash)
其中:/rootfs是要共享的目錄,*代表允許所有的網(wǎng)絡(luò)段訪問,rw是可讀寫權(quán)限,sync是資料同步寫入內(nèi)存和硬盤,no_root_squash是nfs客戶端分享目錄使用者的權(quán)限,如果客戶端使用的是root用戶,那么對于該共享目錄而言,該客戶端就具有root權(quán)限。
其它nfs常用的參數(shù)有:
ro 只讀訪問
rw 讀寫訪問sync 所有數(shù)據(jù)在請求時(shí)寫入共享
async nfs在寫入數(shù)據(jù)前可以響應(yīng)請求
secure nfs通過1024以下的安全TCP/IP端口發(fā)送
insecure nfs通過1024以上的端口發(fā)送
wdelay 如果多個(gè)用戶要寫入nfs目錄,則歸組寫入(默認(rèn))
no_wdelay 如果多個(gè)用戶要寫入nfs目錄,則立即寫入,當(dāng)使用async時(shí),無需此設(shè)置。
hide 在nfs共享目錄中不共享其子目錄
no_hide 共享nfs目錄的子目錄
subtree_check 如果共享/usr/bin之類的子目錄時(shí),強(qiáng)制nfs檢查父目錄的權(quán)限(默認(rèn))
no_subtree_check 和上面相對,不檢查父目錄權(quán)限
all_squash 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。
no_all_squash 保留共享文件的UID和GID(默認(rèn))
root_squash root用戶的所有請求映射成如anonymous用戶一樣的權(quán)限(默認(rèn))
no_root_squas root用戶具有根目錄的完全管理訪問權(quán)限
anonuid=xxx 指定nfs服務(wù)器/etc/passwd文件中匿名用戶的UID
anongid=xxx 指定nfs服務(wù)器/etc/passwd文件中匿名用戶的GID
  
3、重啟服務(wù)
$sudo /etc/init.d/portmap restart
$sudo /etc/init.d/nfs-kernel-server restart
  
4、測試nfs
此時(shí)可以運(yùn)行以下命令來顯示一下共享出來的目錄:
$showmount -e
或者可以使用以下命令把它掛載在本地磁盤上,例如將/rootfs掛載到/mnt下:
$ sudo mount -t nfs localhost:/rootfs /mnt
可以運(yùn)行df命令查看是否掛載成功。查看后可以使用以下命令卸載:
$ sudo umount /mnt


QT4向s3c2410平臺移植
1.開發(fā)平臺:ubuntu 8.10,交叉編譯器版本3.4.5(arm-linux-gcc),qt-embedded-linux-
opensource-src-4.4.3.tar.gz。
2.目標(biāo)平臺:s3c2410,320*240觸摸屏 ,linux-2.6.26.5,u-boot-1.3.4
3.移植步驟如下:
(1)首先配置linux內(nèi)核,支持LCD驅(qū)動(dòng),然后點(diǎn)亮你的屏,并且支持framebuffer,具體的內(nèi)核配置如下:
      Device Drivers  --->    Graphics support  --->   Support for frame
buffer devices  --->  
                                                              S3C2410 LCD
framebuffer support
當(dāng)然里面還涉及一些細(xì)節(jié)。
(2)如果你想支持USB鼠標(biāo)和USB鍵盤,只需配置內(nèi)核既可:
      Device Drivers  --->
  • HID Devices  --->       USB Human Interface
    Device (full HID) support
    (3)編譯內(nèi)核進(jìn)行測試。
    (4)接下來在以上工作的基礎(chǔ)上開始移植QT4。首先下載源碼:
    ftp://ftp.trolltech.no/qt/source/qt-embedded-linux-opensource-src-4.4.3.tar.gz
    ,
    放在你普通用戶的一個(gè)目錄,比如/home/xxx/qt4_port,解壓。
      
    (5)進(jìn)入解壓好的目錄。
    (6)然后就是很關(guān)鍵的配置,QT4的移植是通過配置來是否支持某種特性,比如openssl等等。那么根據(jù)你自己的需求呢進(jìn)行相應(yīng)的配置就可以了,這里參考網(wǎng)站的一篇文章進(jìn)行,具體如下:
    ./configure \
      -prefix  /home/yoyoili/qt4_port/qt/build \  
    //指定安裝的目錄,與開發(fā)板上運(yùn)行的目錄一致
      -release -shared \
      -fast \
      -pch \
      -no-qt3support \
      -qt-sql-sqlite \
      -no-libtiff -no-libmng \
      -qt-libjpeg \
      -qt-zlib \
      -qt-libpng \
      -qt-freetype \
      -no-openssl \
      -nomake examples -nomake demos -nomake tools\
      -optimized-qmake \
      -no-phonon \
      -no-nis \
      -no-opengl \
      -no-cups \
      -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm\
      -no-xinerama -no-xshape \
      -no-separate-debug-info \
      -xplatform qws/linux-arm-g++ \
      -embedded arm \
      -depths 16 \
      -no-qvfb \
      -qt-gfx-linuxfb \
      -no-gfx-qvfb  -no-kbd-qvfb  -no-mouse-qvfb\
      -qt-kbd-usb \
      -confirm-license \
      -no-armfpa
    這里沒有去實(shí)現(xiàn)觸摸屏的校準(zhǔn),如果支持觸摸屏,再加一個(gè):
    qt-mouse-tslib。
    這個(gè)過程如果涉及很多問題,一般都是你的系統(tǒng)缺少了某些庫的問題,我的ubuntu 8.10
    相應(yīng)的庫都安裝的比較齊全,沒有錯(cuò)誤,如果你是fedroa,只需要完全安裝。
    (7)然后就是make && make install,編譯和安裝了,如果好的話,就會(huì)在你的安裝目錄,也就是 /home/xxx/qt4_port/qt/build 有相應(yīng)的如下目錄:bin  include  lib  mkspecs  plugins  translations,大家可以看看里面的內(nèi)容。這里我們關(guān)心的是一個(gè)lib,就是庫文件,以后交叉編譯好的程序在板子上跑起來以后都需要這些庫。把所需要的庫
    cp /home/xxx/qt4_port/qt/build/lib/libQt* /home/xxx/w/rootfs/home/qt/build/lib,
    當(dāng)然有的庫你可以不需要拷貝的。注:這里/home/xxx/w/rootfs是目標(biāo)機(jī)nfs掛載點(diǎn)
    (8)然后拷貝顯示中文的文泉驛字體,這里比如:cp /home/xxx/qt4_port/qt/build/lib/fonts/wenquanyi_160_75.qpf /home/xxx/w/rootfs/home/qt/build/fonts (前面的路徑就是編譯并安裝以后的目錄,這個(gè)字體就是這個(gè)目錄的lib/fonts下面 ,當(dāng)然后面就是我們開發(fā)板根文件系統(tǒng)的目錄)
    (9)測試,我們用源碼自帶的程序來進(jìn)行測試,比如在源碼的example里有很多,只需qmake && make就可以了,然后把可執(zhí)行文件拷貝開發(fā)板上用的根文件系統(tǒng)。
    (10)設(shè)置相應(yīng)的環(huán)境變量,這個(gè)環(huán)境變量是給開發(fā)板使用的,不是給你的PC
    機(jī)!具體如下:
          export QTDIR=/home/qt/build
          export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH  //(否則找不到庫)
          export PATH=$QTDIR/bin:$PATH
          export QT_QWS_FONTDIR=/home/qt/build/fonts   // (否則字體無法顯示)
         當(dāng)然如果你用觸摸屏還有相關(guān)的設(shè)置,你也需要在這里添加!
    (11)運(yùn)行我們的程序:
      ./test -qws -fn /home/qt/build/fonts/wenquanyi_160_75.qpf
    然后你的屏上就有了顯示。
    (12)然后你可以在開發(fā)板上插上你的USB鼠標(biāo)就可以來操作這個(gè)小QT程序了。
    (13)如果你想玩鍵盤:
    設(shè)置你的console=tty0既可以操作你的開發(fā)板了,你就可以玩命令了,那么這個(gè)console
    的參數(shù)的指定有兩種方法,一個(gè)可以通過u-boot傳遞,這里比如:setenv bootargs root
    =/dev/nfs nfsroot=192.168.1.110:/home/yoyoili/source/rootfs ip=192.168.1.120
    init=/linuxrc console=tty0,
    另一個(gè)就是通過內(nèi)核,你只需配置內(nèi)核既可以:具體如下:
      Boot options  --->     (root=/dev/nfs nfsroot=192.168.1.2:/home/yoyoili/
    source/rootfs ip=192.168.1.3 init=/linuxrc console=tty0)!
    (14)這里說一下可能出現(xiàn)的問題:
      1.在編譯你的QT程序的時(shí)候會(huì)有一個(gè)collect錯(cuò)誤,應(yīng)該是連接的qt4的庫不是arm
    交叉編譯工具編譯的,兩者連接有沖突。在file.pro中去掉對qt4
    庫的連接即可,增加一行CONFIG -= qt,即可去掉。
      2.如果出現(xiàn)這個(gè)問題:/lib/libQtCore.so: undefined reference to `clock_gettim
    解決的辦法就是在Makefile里的LFAGS后添加一個(gè) -lrt就可以。
      3.有的人用的交叉編譯器是用的arm-softfloat-linux-gnu-gcc,所以在make
    編譯的時(shí)候老是提示arm-linux-gcc
    找不到,解決這個(gè)問題的辦法很多,一個(gè)方法就是重新制作你的交叉編譯器,修改arm-
    softfloat.dat(好像是這個(gè))將里面的TARGET修改為arm-linux
    就可以了,另一個(gè)方法就是修改QT4源碼的mkspecs/qws/linux-arm-g++目錄下修改qmake.
    config將arm-linux-gcc修改為arm-softfloat-linux-gcc,然后再make就行了。
      4.當(dāng)然你可以用很多工具來編譯你的程序,比如qtcreator,kdevelop

    本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u3/108299/showart_2151310.html
  • 您需要登錄后才可以回帖 登錄 | 注冊

    本版積分規(guī)則 發(fā)表回復(fù)

      

    北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年舉報(bào)專區(qū)
    中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
    感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP