linux系統中qt(qtopia)平台開發說明
******************************===
黃德智([email protected])
v:1.0
日期:20060305
qt 版本 :20060106v2
一、開發包的獲取
***************=
最新的qtopia開發包名稱為:qtopia_dev20060106v2.tar.gz;
當前版本為20060106v2,大小大約為 246m。
二、開發環境的搭建
***************===
qtopia開發包執行於linux作業系統上,linux要求核心版本為2.4.18或以上。安裝linux作業系統,
如果只是在pc機上進行模擬器上的開發和交叉編譯,可將linux安裝到虛擬機器上。將linux安裝到虛擬機器上,
建議硬碟空間最少分配6g,因為開發環境的搭建需要很大空間。
1、qtopia開發包的安裝步驟:
(1)、將qtopia_dev.tar.gz放到/opt/目錄下
建議放在/opt/目錄下,如果需要將開發包放到其他的目錄,則解壓後需要修改
qtopia-phone-2.1.1/src/下的config.pri檔案。
(2)、用命令tar解壓
在linux終端中cd到/opt/目錄下,輸入命令 tar -zxf qtopia_dev.tar.gz (回車),
幾分鐘後解壓結束,出現命令提示符,如果報找不到什麼目錄或找不到什麼檔案,輸入命令「df -m」
檢視硬碟使用情況,一般原因是硬碟空間不足,解壓失敗,刪除硬碟上不需要的檔案或重新安裝linux操作
系統,把分配硬碟空間更大。
(3)、解壓後生成的目錄為qtopia_dev
2、交叉編譯工具的安裝步驟:
(1)、將cross2compiler.tar.gz放到/opt/目錄下
(2)、用命令tar -zxf cross2compiler.tar.gz 解壓
(3)、解壓後生成的目錄為debugdir
交叉編譯工具的安裝是為了編譯出在真機上執行的可執行檔案,如果只是在模擬器上開發,可不
進行交叉工具的安裝。
三、模擬器上開發
***************=
1、配置檔案和全域性變數的設定:
(1)、將.../qtopia_dev/.../x86/settings目錄放到/root/目錄下,如果已經有/root/settings目錄,
則進行覆蓋。
(2)、進入qtopia_dev/.../.../x86/目錄。(中間目錄省略)
(3)、執行 ./setenv 設定環境變數,或source setenv命令。
3、模擬器上檢視執行效果:
(1)、進入.../qtopia_dev/20060106v1102/x86/目錄
(2)、執行./rn.dat 啟動模擬器
5、示例工程中的各個檔案
(3)、example.control檔案
檔案中指定了工程的可執行檔案路徑、desktop檔案路徑、幫助檔案路徑和圖示檔案路徑。
這個檔案我現在還沒有搞清楚:)
(4)、examplebase.ui檔案
該檔案中以xml的格式定義了可視視窗上的各個部件。
(5)、其它檔案
example.html和example.png分別是工程的幫助檔案和圖示檔案。
6、建立自己的工程
.desktop檔案
a、7行,可執行檔名;
b、8行,圖示檔名;
.ui檔案,該檔案可用qt開發環境修改,也可用文字編輯器修改,
a、第2行,examplebase,「examplebase」可修改,但一定要與example.h檔案的25行父類名稱一致;
main.cpp檔案
a、該檔名不修改;
b、21行,修改包含的頭檔名;
c、24行,修改類名;
(3)、編譯自己的工程
a、生成makefile檔案,在工程的目錄下,執行qmake命令;
b、編譯,在工程的目錄下,執行make命令;
c、安裝,在工程的目錄下,執行make install命令;
四、為真機上執行進行編譯
********************====
將**用arm編譯器進行編譯,目標檔案就可在真機上執行。
1、必須進行交叉編譯工具的安裝;
2、將工程目錄複製到.../qtopia_dev/20060106v1102/arm/qtopia-phone-2.1.1/目錄下;
3、編譯;
五、將檔案安裝到真機上
********************==
1、裝置間的軟體連線:
連線步驟:
(1)、連線好個連線
(2)、啟動pc到linux系統中
(3)、關閉防火牆(service iptables stop)
(4)、掛載進qt的開發包(mount /dev/hda4 /mnt/win)
(5)、手動載入usbdnet.o(進入/mnt/win目錄下,執行install),並在終端確認模組已經載入
(6)、啟動(重起)nfs(service nfs restart)
(7)、啟動minicom(#minicom)
(8)、到/home/目錄下,執行指令碼pc_linux
(9)、在終端啟動usb裝置(ifconfig usb0 192.168.254.1 up)
(10)、在minicom視窗中執行/home/目錄下的linuxrc_run指令碼
(11)、在minicom視窗中執行/home/目錄下的指令碼pc_linux
(12)、檢查目錄/mnt/,是否和目錄/opt/p2fs下的內容一致,若一致,則成功
這裡提供幾個診斷連線成功的方法:
pc啟動候,通過l**od|grep usbdnet看看模組是否存在,如果不存在,請手動通過./install載入
如果以上都正確,連線手機,如果ifconfig -a 能看到裝置而ifconfig 看不到,請按照文件設定ip並啟用。
2、檔案安裝目錄:
將編譯好的程式、desktop檔案和圖示放在手機上/opt/qtopia/各自對應的目錄下。
(1)、所有編譯後的程式放在
qtopia_dev/.../arm/qtopia-phone-2.1.1/image/opt/qtopia/bin/目錄下
(3)、所有的程式圖示放在
qtopia_dev/.../arm/qtopia-phone-2.1.1/image/opt/qtopia/pics/程式名/ 目錄下
3、重起手機。
結束====
初識嵌入式 嵌入式開發概述
1 什麼是嵌入式技術 1 嵌入式軟體與非嵌入式軟體的區別?答 嵌入式軟體是結合作業系統之上做的開發 非嵌入式軟體是做的裸機開發。裸機 沒有作業系統 2 嵌入式開發與微控制器開發的區別?答 區別 是否有作業系統。拓展 答 優點 解決了軟體的移植性 解決了開發人員的能力的劃分問題。提供了豐富的網路協議 ...
如何學習嵌入式 嵌入式如何入門?
學習嵌入式,該學習什麼基本的知識呢?嵌入式如何入門?其次,應該對作業系統有所了解,這對你對硬體和軟體的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如程序 執行緒,系統如何來分配資源的,系統如何來管理硬體的,當然,不是看書就能把這些理解透,如果不是一時能理解,沒關係,多看看,結合以後的專案經驗...
非嵌入式與嵌入式的區別
非嵌入式是通過軟體控制硬體,軟硬體之間直接聯絡來實現要求。但是一旦硬體發生改變軟體也要改變,為了降低這種偶合度過高的問題,出現了嵌入式。嵌入式在軟體和硬體之間新增了作業系統,軟體通過控制作業系統進而控制硬體,硬體發生改變並不會導致軟體也發生改變,這為軟體開發人員節約了很多時間,並且嵌入式能在已有的硬...