gec6818平臺(tái)嵌入式linux開發(fā)指導(dǎo)手冊(cè)_第1頁(yè)
gec6818平臺(tái)嵌入式linux開發(fā)指導(dǎo)手冊(cè)_第2頁(yè)
gec6818平臺(tái)嵌入式linux開發(fā)指導(dǎo)手冊(cè)_第3頁(yè)
gec6818平臺(tái)嵌入式linux開發(fā)指導(dǎo)手冊(cè)_第4頁(yè)
gec6818平臺(tái)嵌入式linux開發(fā)指導(dǎo)手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

所有,并保留一切權(quán)利,非經(jīng)粵嵌同意(形式),任何單位及個(gè)人不得擅自摘錄本文分或者全部?jī)?nèi)容,違者將其。作日版更新內(nèi)粵............................................................................................................................................目 第1 嵌入式Linux開發(fā)環(huán)境搭 安裝VmwareWorkstation軟 新建虛擬計(jì)算 安裝 安裝文本編輯器 安裝 安裝TFTP服 文件到6818(串口傳輸&NFS服務(wù) NFS掛 安裝交叉編譯工具 第2 嵌入式Linux系統(tǒng)開 編譯u- 編譯內(nèi) 根文件系 利用現(xiàn)有系統(tǒng)源碼制作鏡 一步步制作根文件系 第3 嵌入式Linux應(yīng)用開發(fā)示 o 文件 進(jìn)程間通 多線程通 網(wǎng)絡(luò)編 第4 Qt介 Qt簡(jiǎn) Qt歷 Qt5.7for 安 o 移植QtEmbedded 配 編譯、安 拷貝QtEmbedded庫(kù)到 設(shè)置環(huán)境變 公司地址:廣州科學(xué)城光譜西路69號(hào)TCL文化產(chǎn)業(yè)園B Copyright?公司 1嵌入式Linux發(fā)環(huán)境安裝VmwareWorkstation軟VMwareWorkstation(中文名“威睿工作站”)是一款功能強(qiáng)大的桌面虛擬計(jì)算機(jī)軟件,提供用戶可在單一的桌面上同時(shí)運(yùn)行不同的操作系統(tǒng),和進(jìn)行開發(fā)、測(cè)試、部署新的應(yīng)用程序的最佳解決方案。VMwareWorkstation可在一部實(shí)體機(jī)器上模擬完整的網(wǎng)絡(luò)環(huán)境,以及可便于攜帶的虛擬機(jī)器,其更好的靈活性與先進(jìn)的技術(shù)勝過(guò)了市面上其他的虛擬計(jì)算機(jī)軟件。在軟件版本選擇方面,如果您的桌面系統(tǒng)是Windows10,請(qǐng)最好自行尋找VmwareWorkstation12以上的版本。因?yàn)橹暗陌姹径紝?duì)Windows10兼容性不大好,容易出現(xiàn)各種問(wèn)題,典型的問(wèn)題就是無(wú)法建立橋接網(wǎng)絡(luò)給虛擬操作系統(tǒng)。因?yàn)楝F(xiàn)在的計(jì)算機(jī)大多數(shù)是64位的了,現(xiàn)在以筆者的Windows操作系統(tǒng)64位Windows7來(lái)利用Vmwareorksaton12進(jìn)行安裝示范,其它版本安裝過(guò)程差別不大。但是建議使用一樣的版本,以免出現(xiàn)各種問(wèn)題而沒法自己解決。從網(wǎng)上或在6818配套資料中找到VMware-workstation-full-12.5.2- .exe安裝選擇安裝路徑,可以默認(rèn)安裝到系統(tǒng) 盤,也可以點(diǎn)擊“更改”指定安裝到其它方取消軟件啟動(dòng)時(shí)檢查更新版本接下來(lái)就是長(zhǎng)時(shí)間的解壓安裝過(guò)程了,完了在完成安裝之前需要輸入正版軟件密匙,輸入您的密匙即可激活軟件。安裝完成新建虛擬計(jì)算安裝完虛擬工作站VMwareWorkstation軟件后,打開的窗口是這樣的下面開始新建一個(gè)虛擬機(jī)不用默認(rèn)配置,選擇自定義選項(xiàng)選擇“稍后安裝操作系統(tǒng)”后,選擇Linux類型系統(tǒng)64位Ubuntu給新建的虛擬機(jī)起個(gè)名稱,并選擇保存的路徑接下來(lái)的處理器配置需要根據(jù)您實(shí)際的情況選擇,如果不知道自己的電腦CPU是什么型號(hào)和幾的,應(yīng)全部選一個(gè)。筆者的電腦CPU是I54590,所以選擇4個(gè)數(shù)。Ubuntu虛擬機(jī)的內(nèi)存量,可以根據(jù)自己電腦的實(shí)際配置情況,配置大一點(diǎn)或者小一點(diǎn)都沒多大問(wèn)題,但建議至2GB。創(chuàng)建一個(gè)新的虛擬磁因?yàn)榫幾gAndroid系統(tǒng)需要的磁盤空間比較大,而且還有其它亂糟糟的文件,建議最大磁盤大小至少100GB,我這里選擇200GB。雖然分配了200GB,但是實(shí)際上沒有占用這么大,200GB。選擇保存路徑接下來(lái)配置ISO鏡像點(diǎn)擊“瀏覽”找到Ubuntu14的系統(tǒng)鏡像最后點(diǎn)擊啟動(dòng)此虛擬機(jī)即可開始安裝Ubuntu了安裝啟動(dòng)虛擬機(jī)后,這是就會(huì)像真實(shí)的裝機(jī)一樣進(jìn)入光驅(qū)引導(dǎo)安裝系統(tǒng)進(jìn)入了Ubuntu的開始安裝界面點(diǎn)擊繼續(xù),進(jìn)入下一步,配置分區(qū)大Androidswap分區(qū),所以默認(rèn)的點(diǎn)擊選中“空閑”,然后點(diǎn)擊左下角的“+”號(hào)創(chuàng)建交換分區(qū),如下圖設(shè)置其它參點(diǎn)擊確定后,在剩余的空間中添加新分區(qū),作為主分區(qū)并掛載在 下分好區(qū)的樣子如下圖,兩個(gè)分區(qū)就可以了完成后點(diǎn)擊“現(xiàn)在安裝”,“繼續(xù)”選擇時(shí)區(qū)鍵盤布局類型下面為Ubuntu設(shè)置一個(gè)系統(tǒng)用戶,并設(shè)置開始最后的安裝工作,這一步驟大概需要一盞茶的時(shí)間出現(xiàn)下面的界面,立即重啟重啟后,出現(xiàn)下面界面,按回車鍵即輸入登錄,下面就是登錄進(jìn)入U(xiǎn)buntu的桌面了安裝VMwareVMwareools是VMwareorksation中自帶的一種增強(qiáng)工具,安裝后能實(shí)現(xiàn)Windows主機(jī)與虛擬機(jī)之間的文件共享,同時(shí)可支持自由拖拽的功能,鼠標(biāo)也可在虛擬機(jī)與主機(jī)之前自由移動(dòng)(不用再按ctr+alt),而且虛擬機(jī)屏幕也可實(shí)現(xiàn)全屏。VMwareWorkstation軟件菜單欄的“虛擬機(jī)”→“安裝VMwareTools”開始安裝VMwaretools。 kitty@kitty-machine:~$ ./vmware- //輸入命令后需要用 授予權(quán)把圖上選中的壓縮 到主文件夾。打開終端輸入命令解壓安裝輸入“yes”然后一路回車安裝即可完成,最后重啟Ubuntu讓VMwareTools生效是否安裝成功,可以體現(xiàn)在Ubuntu是否可以自適應(yīng)屏幕大?。ㄈ绻麩o(wú)法自適應(yīng)屏幕,在VMwareWorkstation菜單欄的查看→自動(dòng)調(diào)整大小→自動(dòng)適應(yīng)客戶機(jī))和從Windows系統(tǒng)桌面上用鼠標(biāo)拖曳一個(gè)文件是否可以拷貝到Ubuntu中。安裝文本編輯器進(jìn)和增加了很多特性,Vim更符合我們的操作習(xí)慣,更加易用。大多數(shù)時(shí)候,在Ubuntu系統(tǒng)下安裝軟件,是通過(guò)apt-get命令完成的。apt-get是一在保證聯(lián)網(wǎng)正常的環(huán)境下,打開終端后運(yùn)行以下命令kitty@kitty-machine:~$ apt- 出現(xiàn)硬盤請(qǐng)求提示有輸入“y”確認(rèn)安裝輸入“y”回車后系統(tǒng)會(huì)聯(lián)網(wǎng)安裝Vim,我們稍等片刻即可。具體的Vim命令的常安裝進(jìn)行Linux界面開發(fā)和編譯Android源碼,均需要g++kitty@kitty- apt- 安裝TFTP服TFTP(TrivialFileTransferProtocol,簡(jiǎn)單文件傳輸協(xié)議)是TCP/IP協(xié)議族中基于UDP1tftp服務(wù)器和tftp客戶kitty@kitty- apt- tftpd- tftp- 2、修改配置文kitty@kitty- /etc/default/tftpd- TFTP_OPTIONS="-l-cTFTP_OPTIONS="-l-c-筆者的用戶名是kitty,在主文件夾下建立共享文件夾tftp_share,路徑自然是kitty@kitty-machine:~$ kitty@kitty- /home/kitty/tftp_share,下kitty@kitty-machine:~$ kitty@kitty- 重啟啟動(dòng)服務(wù),讓配置生kitty@kitty-machine:~$ tftpd- 3、測(cè)試kitty@kitty- kitty@kitty- 在/home/kitty/tftp_share文件夾kitty@kitty- kitty@kitty- 回到主文件夾,并用tftptest文件到主文件 [root@GEC6818/]# [root@GEC6818/]# Ubuntu的IP地 6818 -l要上傳的文件名Ubuntu的IP地 安裝NFS服TCP/IPNFSNFS的客戶端應(yīng)用可以透明地讀寫位于遠(yuǎn)端NFS服務(wù)器上的文件,就像本地文件一樣。1、安裝軟kitty@kitty-machine:~$ apt- nfs-kernel- 修改配置文kitty@kitty-machine:~$ 在末行加入內(nèi)容保存退出,內(nèi)容表示任意網(wǎng)絡(luò)主機(jī)均可/home/kitty/nfs_share 2、創(chuàng)建共享文件夾,修改權(quán)kitty@kitty-machine:~$kitty@kitty-machine:~$ kitty@kitty- kitty@kitty-machine:~$kitty@kitty-machine:~$ /etc/init.d/nfs-kernel- 4測(cè)kitty@kitty-machine:~$ -kitty@kitty-machine:~$ kitty@kitty-machine:~$ -kitty@kitty-machine:~$ kitty@kitty-machine:~$ 6818(&NFS服務(wù)SecureCRT功能比較強(qiáng)大,而且用的比較普遍,所以以此為例。當(dāng)然也可以用簡(jiǎn)單的超級(jí)連連接電腦主機(jī)和6818,并把6818上電開機(jī)運(yùn)行Linux系統(tǒng)1、開發(fā)工具中找 SecureCRT6.6.1.rar,安 。安裝完成打開后是這樣2、單File→QuickConnect選按照下圖設(shè)置,其中COM1是要根據(jù)具體情況的,一般來(lái)說(shuō)如果是臺(tái)式機(jī)默認(rèn)已經(jīng)有串口的,一般COM1。點(diǎn)擊connect后,繼續(xù)回車,就可以3、現(xiàn)在是要把Windows桌面的test.txt文本到6818,先在6818控制臺(tái)輸入接收令 /]#rx NFS在之前的章節(jié)中,我們已經(jīng)幫Ubuntu安裝了NFS服務(wù)器,也驗(yàn)證了NFS服務(wù)的正運(yùn)行,下面就對(duì)如何實(shí)現(xiàn)6818上傳、文件進(jìn)行探討1設(shè)置6818的IP,可以用udhcpc命令自動(dòng)獲取IP或者ifconfig手動(dòng)設(shè)置,下面用ifconfig手動(dòng)設(shè)6818上電Linux系統(tǒng)SecureCRT6818控制臺(tái),設(shè)置IP地址9[root@GEC6818/]#ifconfigeth0 現(xiàn)在UbuntuIP39,如果不知ifconfig查看eth0網(wǎng)[root@GEC6818[root@GEC681839(39):56data64bytesfrom39:seq=0ttl=64time=1.648ms64bytesfrom39:seq=1ttl=64time=0.864ms64bytesfrom39:seq=2ttl=64time=0.879ms64bytesfrom39:seq=3ttl=64time=0.912ms64bytesfrom39:seq=4ttl=64time=0.819[root@GEC6818/]#mount [root@GEC6818/]#ls 2、[root@GEC6818/]#mount [root@GEC6818/]#ls 安裝交叉編譯工具▲關(guān)于交叉編譯在一種平臺(tái)上編譯出能在另一種平臺(tái)(體系結(jié)構(gòu)不同)上運(yùn)行的程序在PC平臺(tái)(X86CPU)上編譯出能運(yùn)行在arm平臺(tái)上的程序,編譯得到的程序X86為了不跟本地編譯器,交叉編譯器的名字一般都有前綴。例如:arm-linux-gcc需要交叉開發(fā)環(huán)境(CrossevelopmentEnv的支持是嵌入式應(yīng)用軟件開發(fā)時(shí)的一個(gè)顯著特點(diǎn)。交叉編譯器只是交叉開發(fā)環(huán)境的一部分。交叉開發(fā)環(huán)境是指編譯、和調(diào)試嵌入交叉編譯環(huán)境所需工具的集合體搭建編譯環(huán)境所需軟件(binuntials、gccglibc等)的安裝載體。交叉編譯器,例如arm-linux-交叉匯編器,例如arm-linux-交叉器,例如arm-linux-所依用于處理可執(zhí)行程序和庫(kù)的一些基本工具。例 arm-linux-通常,編譯機(jī)程序、引導(dǎo)程序(bootloader)、內(nèi)核、文件系統(tǒng)及應(yīng)用程序,是用不同的工具鏈的?,F(xiàn)在以應(yīng)用開發(fā)用到的工具鏈arm-linux-gnueab-5.40.axz為例安裝它,將這個(gè)壓縮包拷貝到Ubuntu任意下。解壓:exportkitty@kitty:~$ kitty@kitty:~$ Jxvfarm-linux-gnueabi-5.4.0.tar.xz- exportkitty@kitty:~$ kitty@kitty:~$ Jxvfarm-linux-gnueabi-5.4.0.tar.xz- kitty@kitty:~$ 立即生效kitty@kitty:~$ 查看是不是成kitty@kitty:~$arm-linux-kitty@kitty:~$arm-linux- -2嵌入式Linux統(tǒng)開編譯u-編譯內(nèi)利用現(xiàn)有系統(tǒng)源碼制作鏡像首先安裝鏡像制作工kitty@kitty:~$sudoapt-getinstallandroid-tools-fsutils 在板子配套資料中找到根文件系統(tǒng)源碼包rootfs-6818-src.tar.bz2,解壓到主文件夾中。kitty@kitty:~$tarjxvfrootfs-6818-src.tar.bz2 生成可燒寫的系統(tǒng)鏡像rootfs-6818.ext4。kitty@kitty:~$sudomake_ext4fs-l500mrootfs-6818.ext4rootfs-6818- 一步步制作根文件系統(tǒng)1、FHS(FilesystemHierarchyStandard)標(biāo)準(zhǔn)介像Ubuntu、Redhat等Linux版系統(tǒng)在對(duì)根文件系統(tǒng)布局上都遵循FHS標(biāo)準(zhǔn)的建議規(guī)定,在嵌Linux里面也是同樣的。該標(biāo)準(zhǔn)規(guī)定了根下各個(gè)子的名稱及其存放的名存放的內(nèi)必備的用戶命令,例如ls、cp必備的系統(tǒng)管理員命令,例如ifconfig、reboot設(shè)備文件,例如mtdblock0、tty1系統(tǒng)配置文件,包括啟動(dòng)文件,例如inittab必要的庫(kù),例如C庫(kù)、內(nèi)核模普通用戶非必備的用戶程序,例如find、du非必備的管理員程序,例如chroot、inetd守護(hù)程序和工具程序所存放的可變,例如日志文用來(lái)提供內(nèi)核與進(jìn)程信息的虛擬文件系統(tǒng),由內(nèi)核自動(dòng)生下的內(nèi)用來(lái)提供內(nèi)核與設(shè)備信息的虛擬文件系統(tǒng),由內(nèi)核自動(dòng)生下的內(nèi)文件系統(tǒng)掛接點(diǎn),用于臨時(shí)安裝文件臨時(shí)性的文件,重啟后將自動(dòng)清2、創(chuàng)建基 結(jié) /lib/modules/3.4.39-- /lib/modules/3.4.39--在光盤資料的Linux平臺(tái)開發(fā)工具或資源包里面的busybox-1.25.1.tar.bz2拷貝到如果之前沒有安裝libncurses5-dev apt- libncurses5- 配置時(shí),我們基于默認(rèn)配置,另外安裝時(shí)不要 路徑,指定一個(gè)安裝路徑,如下Busybox ---[*]Don’tuse/usrInstallationOptions (/home/kitty/nfs_share/rootfs))BusyBoxinstallationprefixkitty@kitty:~$make PILE=arm-linux- 4、拷貝系統(tǒng)配置文件因?yàn)閘inux的通用配置文件基本都是在/etc 明。我們備份了一份在光盤Linux 資源里面,文件是etc.tar.bz2。只要把該壓縮包解壓到 下即可5、拷貝動(dòng)態(tài)庫(kù)因?yàn)槲覀兊腷usybox是用動(dòng)態(tài)編譯的,所以就算做最小的根文件系統(tǒng)也要拷貝基本的glibc庫(kù),更何況以后的C/C++程序的開發(fā),更需要的庫(kù),下面我們做個(gè),把交叉 kitty@kitty:~$ /usr/local/arm/5.4.0/usr/arm-none-linux- 新建一個(gè)文件 forfileinforfileinlibclibcryptlibdllibmlibpthreadlibresolvlibutilsudocplib/$file*.so/home/kitty/nfs_share/rootfs/libsudocp-dlib/$file.so.*/home/kitty/nfs_share/rootfs/libsudocp-dlib/ld*.so*sudocp-dusr/lib/libstdc++.so*/home/kitty/nfs_share/rootfs/libsudocp-dlib/libgcc_s*/home/kitty/nfs_share/rootfs/libsudocp-dlib/libnss*.so*sudocp-dlib/librt*執(zhí)行拷貝 5、打包生成系統(tǒng)鏡像經(jīng)過(guò)上面的操作,恭喜你已經(jīng)完成了最簡(jiǎn)根文件系統(tǒng)的制作。一般高階,就是6818內(nèi)核啟NFS掛載這個(gè)根文件系統(tǒng)rootfsLinux系統(tǒng)的啟動(dòng),但是現(xiàn)階rootfs源碼生成可燒寫的系統(tǒng)鏡像文件。kitty@kitty:~$ - rootfs- 3嵌入式Linux用開發(fā)3.1o碼文件o.cintint{ return0;}(2)kitty@kitty:~$kitty@kitty:~$arm-linux- - [root@GEC6818 [root@GEC6818 ointmain(intargc,char{intfdt,fds;charbuf[20];intnum=0;{}{return1;}{{return1;}{return1;}}return}編在PC機(jī)上使用arm-linux-gcc工具對(duì)源文件進(jìn)行交叉編譯kitty@kitty:~/nfs_share$kitty@kitty:~/nfs_share$arm-linux- - 會(huì)產(chǎn)生一個(gè)新的文件ioinit,文件ioinit內(nèi)容和/etc/profile #include<unistd.h>#include<unistd.h>#include<errno.h>#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(intargc,char{pid_tpid;charchar* ointr_num=0;{printf("pipeprintf("pipecreateerror\n");return-1;}{{printf("%dnumbersreadfromthepipeis\"%s}}else{printf("parentwrite\"%s\"success!\n",p_wbuf);}}2)kitty@kitty:~/nfs_share$kitty@kitty:~/nfs_share$arm-linux- - [root@GEC6818/mnt]#./pipe_rwparentwrite" oworld!"success!12numbersreadfromthepipe[root@GEC6818/mnt]#./pipe_rwparentwrite" oworld!"success!12numbersreadfromthepipeis oworld!(1)intvar=0;int{intret;perror("Failedtocreatearet=pthread_create(&id2,NULL,(voidperror("Failedtocreateathread1\n");}{{{}perror("Thread1lockfailure\n");{}perror("Thread1unlockfailure\n");}}{int{printf("Thevariableislockedby{{}printf("Thread2gotlock\n");printf("vat=%d\n",var);}}}2)[root@GEC6818在pc機(jī)上使用arm-linux-gcc工具對(duì)源文件進(jìn)行交叉編[root@GEC6818kitty@kitty:~/nfs_share$kitty@kitty:~/nfs_share$arm-linux- - -TheThevariableislockedbypthread1Thread1lockfailure:Thread1lockthevariableThread1unlockfailure:Thread2gotlockvat=Thread1lockfailure:Thread1locktheThevariableislockedbypthread1Thevariableislockedbypthread1Thread1unlockfailure:Thread2gotlock網(wǎng)絡(luò)編1)編寫代#include<stdio.h>#include<stdlib.h>#include<errno.h>#include#include<stdio.h>#include<stdlib.h>#include<errno.h>#include#include int {{ } { printf("\n------------GEC6818TCPNetwork ( /*socket連接 -{ } /*設(shè)置sockaddr_in /* -{ } /*調(diào)用listen函數(shù)*/ { } { /*調(diào)用accept {perror("Server:Accept");}printf("Server: /*調(diào)用recv { } }} { (This {printf("Client:PleaseenterIPoftheserveryouwanttoconnect!\n");}{ }/*socket連接 -{ } /*設(shè)置sockaddr_in /*調(diào)用connect { } /*發(fā)送文件名給服務(wù)器端 -{ } }}編在PC的終端上交叉編譯以上代碼源文件,生成可執(zhí)行程序。命令如下kitty@kitty:~/nfs_share$kitty@kitty:~/nfs_share$arm-linux- -o 運(yùn)行服務(wù)器將可執(zhí)行程序拷貝到實(shí)驗(yàn)箱中先作為服務(wù)器運(yùn)行,由于實(shí)驗(yàn)箱只有一個(gè)終端,故使用“&”參數(shù)讓程序行。命令、參數(shù)及行結(jié)果如下:[root@GEC6818 [root@GEC6818 [root@GEC6818 ( ) 服務(wù)器循環(huán) 次,目前處在第一次循環(huán)中,阻塞并等待第一個(gè)客戶端發(fā)來(lái)的連接請(qǐng)求運(yùn)行客戶端在實(shí)驗(yàn)箱的同一個(gè)終端,讓程序作為客戶端再次運(yùn)行另外,還需要通過(guò)參數(shù)指定其所要連接的服務(wù)器IP地址(本機(jī))以及要發(fā)送給服務(wù)器的消息“o_Serve 命令、參數(shù)及運(yùn)行結(jié)果如下c結(jié)果如( "由于客戶端與服務(wù)器運(yùn)行在同一終端下,二者所打印的文本輸出會(huì)出現(xiàn)交錯(cuò)穿插,因此須 每次打印開頭的字樣區(qū)分。以上運(yùn)行結(jié)果,以“Client:”字樣開頭的輸出文本均由客 client:"o_Serve 運(yùn)行結(jié)果中以“Server:”字樣開頭的輸出文本均由服務(wù)器打印。通過(guò)這些文TCP連接,并成功接收和打印客戶端發(fā)來(lái)消息。隨后,服務(wù)器進(jìn)入第二次循環(huán),再次阻塞并等待第二個(gè)客戶端發(fā)來(lái)的連接請(qǐng)求。4嵌入式LinuxGUIQtQt用程序,當(dāng)然也可以開發(fā)非圖形令行(CommandUserInterface,CUI)應(yīng)用程序。Qt支持眾多的操作系統(tǒng)平臺(tái),如通用操作系統(tǒng)Windows、Linux、Unix,智能系統(tǒng)Android、iOS、WindowsPhone,嵌入式系統(tǒng)QNX、VxWorks等等,應(yīng)用廣泛。當(dāng)然Qt結(jié)合特別緊密的,如驅(qū)動(dòng)開發(fā),需要利用操作系統(tǒng)本身的函數(shù)庫(kù)實(shí)現(xiàn)之外,其他大部分的應(yīng)用程序開發(fā)都可以用Qt實(shí)現(xiàn)的。QtQt1991EirikChambe-EngHaavardNord開發(fā)的,他們隨后于1994年正式成立奇趣科技公司(Trolltech)。Qt原本是商業(yè)的跨平臺(tái)開發(fā)庫(kù),在2000年奇趣科技公司為開源社區(qū)發(fā)布了遵循GPL(GNUGeneralPublicLicense)證的開源版本。在2008年,諾基亞公司收購(gòu)了奇趣科技公司,并增加了LGPL(GNULesserGeneralPublicLicense)的模式。諾基亞聯(lián)合英特爾利用Qt開發(fā)了全新的智能系統(tǒng)MeeGo,由于,諾基亞被迫放棄了MeeGo,而Qt商業(yè)業(yè)務(wù)也于20113IT服務(wù)公Digia。目前Qt5.2版本發(fā)布以來(lái),Qt公司都在大力推廣移動(dòng)平臺(tái)開發(fā)和商業(yè)應(yīng)用,增加對(duì)Android、iOS等移動(dòng)系統(tǒng)的開發(fā)支持。Qt5.7for安Ubuntu系統(tǒng)中開發(fā)Qt程序,是需要X11桌面環(huán)境的Qt集成開發(fā)環(huán)境的。Qt已經(jīng)為我們打包好了一個(gè)工具包,我們只要安裝即可獲得到Qt的集成開發(fā)環(huán)境。注意:安裝前,請(qǐng)確定Ubuntu已經(jīng)安裝了g++編譯器,如果沒有,請(qǐng)先安裝。從配套資料或從Qt官網(wǎng)上找到安裝包qt-opensource-linux-x64-5.7.0.run,拷貝到系統(tǒng)的主文件夾中,并雙擊文件運(yùn)行安裝o安裝完了Qt開發(fā)環(huán)境后,看看是否可以正常進(jìn)啟動(dòng)QtCreator后,文件—>新建文件或項(xiàng)目,選擇一個(gè)工程模版,如下圖所示選擇后便提示下面窗口,按提示操作,一路中文,無(wú)壓力QtEmbedded植QtEmbedded庫(kù),可以查看下一章節(jié)。kitty@kitty:~$sudovim/usr/local/Qt-Embedded-5.7.0-拷貝現(xiàn)成的庫(kù)Qt-Embedded-5.7.0.tar.xz到Ubuntukitty@kitty:~$sudovim/usr/local/Qt-Embedded-5.7.0-添加內(nèi)容exportQTDIR=/usr/local/Qt-Embedded-5.7.0/exportQTDIR=/usr/local/Qt-Embedded-5.7.0/exportQMAKEDIR=$QTDIR/binexportexportPATH=$QMAKEDIR/bin:$QTDIR/bin:/usr/local/arm/5.4.0/usr/bin:$PATH#exportQT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins#export kitty@kitty:~$source/usr/local/Qt-Embedded-5.7.0-用source命令讓其在當(dāng)前終端kitty@kitty:~$source/usr/local/Qt-Embedded-5.7.0-看看是否起效下下面利 oworld進(jìn)行交叉編譯,進(jìn)oworld工程所在 kitty@kitty:~$cd kitty@kitty:~$qmakekitty@kitty:~$makecleankitty@kitty:~$移植QtEmbeddedQtEmbedded是圖形化界面開發(fā)工具Qt的嵌入式版本,它通過(guò)QtAPI與linuxI/O以及ramebuferQt6818平臺(tái)上運(yùn)行Qt一是6818平臺(tái)上具有由QtEmbedded開放源碼包經(jīng)過(guò)交叉編譯移植后的Qt動(dòng)態(tài)運(yùn)行庫(kù),二是我們自己開發(fā)編寫的Qt應(yīng)用程序也經(jīng)過(guò)交叉編譯。配kitty@kitty:~$tarJxvfqt-everywhere-opensource-src-kitty@kitty:~$tarJxvfqt-everywhere-opensource-src-kitty@kitty:~$cdqt-everywhere-opensource-src-編輯平臺(tái)相關(guān)的qmake.conf配置kitty@kitty:~/qt-everywhere-opensource-src-kitty@kitty:~/qt-everywhere-opensource-src- qtbase/mkspecs/linux-arm-gnueabi-修改以下紅色字體內(nèi)=+=QMAKE_INCREMENTAL_STYLE=QT_QPA_DEFAULT_PLATFORM= QMAKE_CXXFLAGS_RELEASE -march=armv7-mon/g++-#modificationsto#modificationsto=arm-l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論