arm嵌入式linux qt入門問答,很經典!!

來源:互聯網
上載者:User

很多新手剛開始學習ARM的時候都會遇到下面類似的問題,由於很多基本原理都不會,所以很容易被表面問題迷惑,相信看完下述問答的新手一定會對ARM有一個非常清晰的印象。
1、請問qt-x11、qt-embedded、qtopia-core這三個有什麼區別和聯絡
2、如果arm上沒有qt庫,我在pc上通過交叉編譯了一個qt應用程式,能直接下載到arm上運行嗎?
3、qmake和make有什麼區別和聯絡嗎?
4、qt-embedded-linux-opensource-src-4.4.3.tar.gz這個名字是不是說明這個版本是符合qt4.4.3的qt庫,只不過能用來交叉編譯即將在arm上啟動並執行qt應用程式源碼?
5、用什麼可以模擬arm開發板環境來測試自己交叉編譯後的程式是否可以移植成功呢?每次通過實際下載來偵錯工具好麻煩呐
6、我擔心第二個問題的答案是“不能”,這樣的話可能就必須預先下載qt庫到arm上,而qt4是很大的,這樣會不會很困難?而我只希望自己的程式能夠在arm上正常運行,是不是可以把qt庫減小到只留下自己程式需要的庫函數呢?或者乾脆將需要的庫函數源碼和自己的qt程式一起交叉編譯後再下載到arm中。
7、交叉編譯環境的各種工具版本的對應問題好煩!不知道cross-3.4.1和cross-3.4.4能適應哪些qt庫,同時還牽扯到linux核心版本問題,真是痛苦!
8、我現在手中有個s3c2440A的arm開發板,是飛淩OK2440III型號,光碟片丟了,很多開發工具軟體找不到了,它裡面提到一個交叉編譯環境鏈式2.95.3、3.3.2、3.4.1就是不知道這個三個是指哪三個工具,第一個好像是cross-2.95.3。
9、這個開發板裡的linux系統整合了qtopia-free-src-2.2.0,這個應該是屬於qt2吧?那麼我在pc上裝的qt-embedded-linux-opensource-src-4.4.3.tar.gz的環境寫的qt4程式是不是就不能在這個arm開發板上運行了?
問題補充:
好不容易將Qt-embedded版本裝在pc上了,但是為了能將應用程式下到arm上去測試,發現qt應用程式需要動態連結qt庫,而arm上沒有這個,只有個低版本的qtopia,所以決定將應用程式進行靜態編譯,結果需要先在PC上靜態編譯qt。
好吧,那就靜態編譯吧。
結束後終於可以靜態編譯應用程式了,發現動態編譯的應用程式只有15K,而動態編譯的卻有8M。
沒關係,只要能運行也就罷了。
但是靜態編譯時間成功的,但是下到arm上去運行卻說:line 1:syntax error:"(" unexpected這樣的錯誤,真要暈倒了!該怎麼辦呢?
另外我想問一下,這個靜態交叉編譯的qt4應用二進位檔案可以在PC的什麼平台上測試呢?每次下到arm中測試好麻煩啊!
如果是動態編譯,請問用什麼命令可以查看qt程式調用了哪些庫函數,以便在下載時可以將庫函數一併下到arm中

-------------------------------------------------------------------------- 華麗的分割線 ----------------------------------------------------------------------------------------

1、qt-x11是建立在X11圖開庫上的,X11圖形庫又是建軍在FRAMBUFFER上的,FRAMBUFFER是linux核心的圖形庫,X11系統資源需求大,不能用於嵌入式,所以qt-embedded產生了,它不是建立在X11圖形庫上的,它是直接建立在FRAMBUFFER上的,占系統資源極少,可以在嵌入式上使用。qtopia-core這個概念是相對於qtopia提出的。它就是qt-embedded。而qtopia是QT公司的一個嵌入式案頭系統,目前已停止開發了。
2、如果arm上沒有qt庫,不能運行QT程式,必須把相應的QT庫按裝到ARM板上。
3、qmake產生makefile,make根據makefile調用gcc進行編譯。
4、qt-embedded-linux-opensource-src-4.4.3.tar.gz是用在嵌入式上的QT開發庫。用法與qt-4.4.3-x11版的用法一樣。
5、沒有辦法模擬,只能先進行qt-embedded的移植工作。但是開發qt-embedded程式時,到是可以在PC機上先用qvfb模擬調試的。
6、qt-embedded庫先交叉編譯,完成後下載到開發板上,以後開發應用程式時,qt庫不用再下載的。
7、寫qt程式需要4.0版以上的交叉編譯器。網上可以下載現成。
8、這是三個不同版本的gcc交叉編譯器,都老了。目前至少應該使用gcc 4.0以上的。
9、肯定是不行的。

-------------------------------------------------------------------------- 華麗的分割線 ----------------------------------------------------------------------------------------

使用的是arm+linux開發板,是要把linux系統嵌入到arm晶片內,然後再用c編程運行嗎?
答:
用Linux你可以不支付license費用,那是自由軟體。
windows的作業系統就不能用來開發arm嗎?
可以,但很多資料你需要購買。包括開發軟體的API。arm(一顆晶片)和一個使用者的作業系統間到底是什麼關係呢?硬體和軟體的區別。就像P4和XP。
有人做的一個Embest IDE就像是一些常用的單片機的IDE一樣,裝在windows的系統下,也可以用來做arm的開發啊,好像就是在電腦上裝一個IDE,然後連上模擬器,再連上開發板就可以了,為什麼那麼多人要採用linux系統呢?
如果沒有windos高昂的許可費用和底層故作高深的垃圾一樣的代碼,而且還開放原始碼,基本上就和Linux差不多了。這就是為什麼用Linux開發嵌入式。
在linux系統下又需要什麼樣的IDE呢?
一般用vi或emacs,大一點的有eclipse,anjuta,kdeveloper... 不過開發Linux的人一般都不用大型的IDE軟體。xp下的超級終端和minicom的功能差不多,但用起來更方便。”這句話到底是什麼意思?具體怎麼用?這話是不正確的,minicom的功能基本上覆蓋了你對串口的所有控制,而超級終端僅僅是個兒童版。
具體用法你裝完Linux後,用man看一下就可以了。原生編譯工具集編譯的代碼只適用本機(大多數PC是X86)運行,對於ARM開發人員來說,需要一個能在原生編譯、但編譯卻產生ARM運行代碼的一套交叉編譯工具集。
因此,選擇一個與本機工具集相異的特定含義的目標名稱是非常有必要的。arm-linux:是個比較受歡迎的名稱,支援ELF格式(ARMLinux標準)。除Acorn使用者使用老的a.out格式外。arm-linuxaout:選擇a.out格式,ARMLinux基本不支援它了。arm-aout、arm-coff、arm-elf、arm-thumb:其它的格式名。你也可以在其中插入版本資訊,比如:armv2:ARMV2核,支援26bit模式。armv3l、armv3b:ARMV3核,小位元組(l)或大位元組(b)模式。armv4l、armv4b:ARMV4核,如:StrongARM、ARM7TDMI、ARM8、ARM9。同樣也支援小位元組(l)或大位元組(b)模式。armv5l、armv5b:ARMV5核,如:XScale核ARM10。同樣也支援小位元組(l)或大位元組(b)模式。選擇什麼名稱對定製ARM交叉編譯工具集沒太大的影響,但用大家常用的名稱會比較好些。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.