交叉編譯glib
① riscv-gnu-toolchain 交叉編譯器如何構建
探索RISC-V架構的GNU工具鏈構建之旅要構建RISC-V架構的GNU工具鏈,你需要精心配置和安裝一系列關鍵組件。首先,確保你的系統已安裝必要的依賴工具,包括 sudo apt-get install git autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf patchutils bc libexpat-dev libglib2.0-dev ninja-build zlib1g-dev pkg-config libboost-all-dev libtool libssl-dev libpixman-1-dev libpython-dev virtualenv libmount-dev libsdl2-dev。
然後,開始下載RISC-V工具鏈的核心組件:
1. 獲取RISC-V編譯器基礎庫
從Gitee克隆riscv-gnu-toolchain的主分支:
git clone https://gitee.com/mirrors/riscv-gnu-toolchain
接著,分別克隆RISC-V的C編譯器(riscv-gcc)配孫、測試框架(riscv-dejagnu)、GNU C庫(riscv-glibc)以及輕量級嵌入式庫(riscv-newlib):
git clone -b riscv-gcc-10.2.0 https://gitee.com/mirrors/riscv-gcc
git clone https://gitee.com/mirrors/riscv-dejagnu
git clone -b riscv-glibc-2.29 https://gitee.com/mirrors/riscv-glibc
git clone https://gitee.com/mirrors/riscv-newlib
2. 調試器的加入
為了調試,還需下載RISC-V版本的GDB:
git clone -b fsf-gdb-10.1-with-sim https://gitee.com/mirrors/riscv-binutils-gdb riscv-gdb
接下來,進入構建過程:
- 配置工具鏈
在終端創建一個名為"build"的目錄,然後切換到該目錄,執行以下配置命令:
cd build
../configure --prefix=/opt/riscv/gcc --enable-multilib --target=riscv64-multlib-elf
這個配置將工具鏈安裝到"/opt/riscv/gcc",需要超級用戶許可權,所以請確保使用sudo。
- 編譯與安裝
使用多線程(-j8)加速編譯過程:
sudo make -j8
編譯完成後,工具鏈將自動安裝到指定目錄,可以通過驗證版本信息來確認安裝是否成功:
cd /opt/riscv/gcc/bin
riscv64-unknown-elf-gcc -v
通過以上步驟,你已成功構建飢賣前了RISC-V架構的GNU工具鏈,現在你可以在RISC-V平台上愉快地進行C語言編譯和調試了。這個工具鏈不僅包含了C編譯器,還涵蓋了測試框架和必要的庫爛清支持,為RISC-V開發者提供了強大的開發環境。
② 交叉編譯gmediarender-0.0.6
需要安裝libupnp,最新版本1.6
③ Qt 軟體中怎麼自動加入build版本號
當進入解壓好的源碼包後,使用./configure –help命令,可以獲得相應幫助,那我們只要選取參數部分看看 -release 這個參數顯而易見,就是編譯Qt以發布版的模式進行,一般來說,最後系統完成後,庫就應該是發布版。 -release 與上面對應,自然是調試版了,如果開發的話,可以選擇它吧。 -debug-and-release 囧,上面那兩個的兒子。 -developer-build 囧,我錯了,開發者也可以用這個的,選了這個後,可以進行自動測試,不過還沒去用過,以後可以研究研究。 -opensource -commercial 這兩個參數是指是編譯是商業版本的,還是開源版本呢,視個人情況而定。 -shared -static 這兩個參數是指Qt的lib以動態還是靜態編譯生成,這自然也是視個人需要的。 -no-fast -fast 這兩個就很有關系,如果對自己的電腦性能很有信心,那就選第一個,那所有的工程文件都會生成到makefiles中,那編譯的時間,估計可以看完變形金剛了。如果選第二個,那就加入子目錄和庫到makefiles,這樣就能加快編譯的速度。 -no-largefile -largefile 顧名思義,支不支持大文件,一般來說,嵌入式里是不會有從超過4G的大文件的,那就選第一個吧。 -no-exceptions -exceptions 計算機英語夠好的人都該懂,這個自然就是異常情況,選則編譯器支持拋出異常,否則不支持。 -no-accessibility -accessibility 可訪問性的支持,說實話,這個我真不知道有什麼有用了。等哪天發現了,再來好好解釋。 -no-stl -stl 是都加入stl的支持,stl,這應該算是C++程序員應該都了解了,再不濟,那也總聽說過大名吧。 no-sql-<driver> -qt-sql-<driver> -plugin-sql-<driver> 這 個可要好好說明下,一般來說,對於一個優秀的項目開發,資料庫是必不可少的,qt也自帶了大多數資料庫驅動,可以完美地支持資料庫的使用。對於數 據庫的使用,我們可以直接qt驅動編譯進去,或者以插件的形式編譯進去。一般來說,最簡單地就是直接編譯進去,但使用插件形式的可以更加靈活,針對不同的 需求將驅動插件添加。其中,<>代表的是驅動名,如果我想直接添加sqlite的支持話,形式如下:-qt-sql-sqlite。其他名稱 可以自己查看參數里,有詳細地介紹。 -system-sqlite sqlite真受歡迎啊,當然那麼優秀的嵌入式資料庫,本人也是基本使用它來進行開發。這個參數意思是使用操作系統上的sqlite資料庫,如果是不太會移植的,可以考慮直接使用qt自帶的驅動。 -no-qt3support -qt3support 這個也是簡潔易懂,加不加對qt3的支持。 no-xmlpatterns -xmlpatterns 選擇對xml的支持,如果對網路無需求的話,就不用加了。 -no-phonon -phonon phonon是qt中處理多媒體的模塊,比如放放視頻什麼來著,不過本人從沒用過,也是根據需要選擇的。 -no-phonon-backend -phonon-backend 與上面類似,只不過這兩是以插件的形式加入支持。 -no-svg -svg 是否加入svg的支持,svg即可縮放矢量圖形。 -no-webkit -webkit 是否加入webkit的支持,這可是個好東西,不過如果跟網路不搭界的話,還是不支持吧。 -no-scripttools -scripttools 是否加入腳本工具的支持,這對php等腳本工程師來說是個很棒的參數,但對於我這樣菜鳥,就別提了。 -platform target 目標平台,這可是關鍵了,如果不注意的話,編譯出來是x86上的話,哪怕是再牛的嵌入式工程師來也沒法幫你移植到開發板上。通常,本人是linux-arm-g++。 -no-mmx -no-3dnow -no-sse -no-sse2 這四個參數是針對CPU的指令集,老實說,我也不甚了解,不過,對於開發並不是影響很大。 -qtnamespace 把qt的庫封裝到命名空間,沒啥重要用處,依個人愛好加吧。 -qtlibinfix 將所有的qt的.so庫重命名,也沒啥大用處。 -no-sql-<driver> -qt-sql-<driver> -plugin-sql-<driver> -system-sqlite 這是相當明顯的,如果這都看不出來,,囧,那您一定比我近視(本人800度近視。。) 就 是說如果是-no-XX-,就說明編譯時不選擇這個參數,如過是-qt-XX-,說明我們可以編譯直接選用qt自帶的驅動,如果是 -plugin-XX-,就是將驅動以插件形式編譯,而-system-XXX,當然是使用操作系統提供的驅動,不過那就需要您自己移植了,而且有時還要 用第三方的API,就方便來說非常麻煩,但是不排除您是牛人要好好玩玩的情況。 接下來,我們接著研究配置參數。 -qt-zlib -system-zlib 想 必經過上面的講解,參數的意思已經很快得知,就是選擇qt帶的zlib庫還是系統的zlib。zlib庫是用於文件和資料壓縮的庫,對於新入嵌入式的人來 說,可能並無太大的用處,但是在以後的實際開發中,特別是對於多媒體圖像圖形的工程師來說,就肯定用到,因為圖形圖像的壓縮都要使用或涉及到這個庫。 -no-gif -qt-gif 這是選擇gif的支持,如果選擇qt支持的話,那在用qt開發的項目中,就能顯示gif圖,gif也是比較普遍的圖片格式了,英文全稱是Graphics Interchange Format。 -no-libtiff -qt-libtiff -system-libtiff tiff是一種非常復雜的光柵圖像格式,並且有直接現成的C語言實現庫,因此選擇參數時就有了qt和system,一般來說,科學相關的開發里可能會用到。 -no-libpng -qt-libpng -system-libpng png的相關參數,一種非失真性壓縮點陣圖圖形文件格式,其實就是為了替代gif搞出來的,也是隨實際需要來選擇,當然,也有C語言實現的庫。 -no-libmng -qt-libmng -system-libmng 大汗,大汗,這可是超級罕見的東西,QT竟然也能支持,說實話,這個參數我看來就是無視的。MNG是多幀PNG動畫格式,結構極其復雜,基本沒人用。 -no-libjpeg -qt-libjpeg -system-libjpeg jpeg,這么有名的圖片格式也不用說了,隨需要選擇吧。 -no-openssl -openssl -openssl-linked SSL,Security Socket Layer,是一個安全傳輸協議,在Internet網上進行數據保護和身份確認,而OpenSSL是一個開放源代碼的實現了SSL及相關加密技術的軟體 包,在qt中,我們可以選擇直接支持,或者OpenSSL鏈接支持,這個參數也是為有需要者提供的。 以上是第三方庫的參數選擇,緊接著就是qt附加參數,在附加參數里,我們可以指定編譯的部分及加入參數來獲取信息。 -make -nomake 一 句話,說明,就說我可以這兩個參數選擇哪些我要編譯,哪些我不需要,在 libs tools examples demos docs translations這些里你可以選擇,比如examples,並不重要,可以放在-nomake後,這樣編譯過程中就不會編譯這部分了。通過適當的 選擇,我們可以大大加快編譯的速度,這對配置較差的機子來說有著積極意義。 -R <string> -l <string> 這兩個參數是為編譯時增加一個庫的運行路徑及頭文件的路徑,比如使用tslib作為開發觸摸驅動時,我們就應使用這兩個參數來指定tslib的庫路徑和頭文件路徑。 -no-rpath -rpath 這個參數比較難於理解,簡單地說,就是告訴動態載入器,到-rpath指定的目錄中尋找編譯時須要的動態鏈接庫,語法就與上面的參數結合,比如 -rpath -R/home/xxxx。 -continue 這個參數的作用就是當出現錯誤時依然進行配置編譯,換我是不會加上的。 -verbose, -v 這個參數就很眼熟,在前面的文章中有過詳細介紹,簡言之,就是顯示配置的每一步的具體信息。 -no-optimized-qmake -optimized-qmake 是否編譯生成優化過的qmake,沒啥大用,也屬於可有可無的參數。 -no-nis -nis 是否編譯NIS支持,NIS(網路信息服務)是一個提供目錄服務的RPC(遠程過程調用)應用服務,當然沒網路需要的可以再次華麗地無視。 -no-cups -cups 是 否編譯CUPS支持,是不是想問什麼用啊?~~~~囧,開列印店用的。好了,不說冷笑話,CUPS給Unix/Linux用戶提供了一種可靠有效 的方法來管理列印。它支持IPP,並提供了LPD,SMB(服務消息塊,如配置為微軟WINDOWS的列印機)、JetDirect等介面。CUPS還可 以瀏覽網路列印機。它的開發提供者是大名鼎鼎的「水果生產商」----蘋果公司。 -no-iconv -iconv 選擇是否編譯iconv支持,iconv是一個計算機程序以及一套應用程序編程介面的名稱。它的作用是在多種國際編碼格式之間進行文本內碼的轉換。這對跨語言Qt開發人員來說是很有用的,當然,考慮到中文的編碼,我也選擇加入支持。 -no-pch -pch 是 否支持預編譯過的頭文件。預編譯頭就是把一個工程中的一部分代碼,預先編譯好放在一個文件里(通常以.pch為擴展名),這個文件就稱為預編譯頭 文件。這些預先編譯好的代碼在工程開發的過程中不會被經常改變。如果這些代碼被修改,則需要重新編譯生成預編譯頭文件。媽媽經常說:不懂就要學。我說:不 懂就加上。。。 no-dbus -dbus -dbus-linked 是否編譯編譯QtDBus模塊。dbus是freedesktop下開源的Linux IPC通信機制,本身Linux 的IPC通信機制包括,管道(fifo),共享內存,信號量,消息隊列,Socket等。在Qt中DBUS是有單獨的模塊的,可見其重要性。 -rece-relocations 對於額外的庫鏈接器優化,可以減少編譯中的再定位。 no-separate-debug-info -separate-debug-info 是否存儲debug信息在.debug,一般為了查錯,還是選擇存儲吧。 -xplatform target 相當淺顯的參數,即交叉編譯的目標平台,一般來說根據你所要移植的目標板來確定。 -no-feature-<feature> -feature-<feature> 選 取qte的feature編譯,對於這個,我理解為特性,特性的描述你可以參考src/corelib/global/qfeatures.txt,在這 裡面對於每個特性都有比較充分的講解。對於特性地選擇,也是要根據開發需求進行,如果裁剪適當,能大大為qte庫瘦身。 -embedded <arch> 嵌入式平台架構選擇,可以選擇arm,mips,x86及generic,視你的目標平台決定吧。 -armfpa -no-armfpa 這個參數也只是針對ARM平台的,是否加入對於基於ARM的浮點數格式的支持,通常,這個參數在編譯時會自動選擇。 -little-endian -big-endian 目標平台的大端和小端選擇,這應該是常識了,如果這不知道,就不要來混嵌入式了 -host-little-endian -host-big-endia 主機平台的大端和小端選擇,屬於雞肋的參數,不選擇也會在配置時自動選擇。 -no-freetype -qt-freetype -system-freetype 選擇freetype,FreeType庫是一個完全免費(開源)的、高質量的且可移植的字體引擎,它提供統一的介面來訪問多種字體格式文件,在嵌入式開發中,有套可使用的字體對於中文開發至關重要,本人一般使用文泉驛字體。 -qconfig local 使用本地的qconfig配置文件來替代全部參數配置,有需要的可以去研究下,可以裁剪控制項級別的參數。 -depths <list> 顯示的像素位深,也是根據需要來進行吧。 -qt-decoration-<style> -plugin-decoration-<style> -no-decoration-<style> 這個是選擇qt的樣式風格,對於需要美化界面的項目來說,可以好好選擇下。 -no-opengl -opengl <api> 是否加入opengl的支持,OpenGL是個專業的3D程序介面,是一個功能強大,調用方便的底層3D圖形庫。不過對於一般的開發來說,似乎有很少用到的地方。 -qt-gfx-<driver> -plugin-gfx-<driver> -no-gfx-<driver> 這個是相當重要的一個參數,選擇QtGui的圖形顯示驅動,比如我們在pc上使用qvfb模擬時,就應該加入對qfvb的支持。我們可以在 linuxfb,transformed,qvfb,vnc,multiscreen這幾個中選擇。在平常的開發板上,選擇linuxfb即可。 -qt-kbd-<driver> -plugin-kbd-<driver> -no-kbd-<driver> 選擇鍵盤的驅動支持,可以支持usb鍵盤,串口鍵盤等等,也是在tty,usb ,sl5000, yopy, vr41xx ,qvfb中選擇。 qt-mouse-<driver> -plugin-mouse-<driver> -no-mouse-<driver> 滑鼠的驅動支持,一般都會選擇tslib,可以完美地支持觸摸屏,在pc,bus,linuxtp,yopy,vr41xx,tslib,qvfb中選擇吧。 -iwmmxt 加入iWMMXt指令的編譯,也只是部分XScale架構才具有。 -no-glib -glib 是否加入glib庫的支持,glib庫對應即gtk庫,就也是說加入後可以使用gtk。
④ qemu怎樣為選擇arm linux內核鏡像選擇運行arm平台
下載Linux內核
下載內核有兩種方法,一種是用git直接下載內核代碼樹,方便後面的內核開發。另一種是直接到內核社區下載對應版本的源碼包。我採用第一種方法,但後面發現主線上3.18版本和後面版本的代碼,使用這種搭建方法運行不起來。目前未查明問題的根因。如果讀者想快速搭建成功,建議選用3.16版本的內核進行搭建。
安裝arm的交叉編譯工具鏈
想必做嵌入式開發的朋友,對交叉編譯工具鏈不陌生。如果你訂制一個交叉編譯工具鏈,建議你使用crosstool-ng開源軟體來構建。但在這里建議直接安裝arm的交叉編譯工具鏈:
sudoapt-getinstallgcc-arm-linux-gnueabi
編譯Linux內核
生成vexpress開發板子的config文件:
makeCROSS_COMPILE=arm-linux-gnueabi-ARCH=armvexpress_defconfig
編譯:
makeCROSS_COMPILE=arm-linux-gnueabi-ARCH=arm
生成的內核鐿像位於arch/arm/boot/zImage,後續qemu啟動時需要使用該鏡像。
下載和安裝qemu模擬器
其實Ubuntu12.04有qemu的安裝包,但由於版本較低,對vexpress開發板支持不友好,建議下載高版本的qemu:
wget
配置qemu前,需要安裝幾個軟體包:
sudoapt-getinstallzlib1g-dev
sudoapt-getinstalllibglib2.0-0
sudoapt-getinstalllibglib2.0-dev
配置qemu,支持模擬arm架構下的所有單板:
./configure--target-list=arm-softmmu--audio-drv-list=
編譯和安裝:
make
makeinstall
測試qemu和內核能否運行成功
qemu已經安裝好了,內核也編譯成功了,到這里最好是測試一下,編譯出來的內核是否OK,或者qemu對vexpress單板支持是否夠友好。
運行命令很簡單:
qemu-system-arm-Mvexpress-a9-m512M-kernel/home/ivan/kernel_git/linux/arch/arm/boot/zImage-nographic-append"console=ttyAMA0"
如果看到內核啟動過程中的列印,說明前的搭建是成功的。
這里簡單介紹下qemu命令的參數:
-Mvexpress-a9模擬vexpress-a9單板,你可以使用-M?參數來獲取該qemu版本支持的所有單板
-m512M單板運行物理內存512M
-kernel/home/ivan/kernel_git/linux/arch/arm/boot/zImage告訴qemu單板運行內核鏡像路徑
-nographic不使用圖形化界面,只使用串口
-append"console=ttyAMA0"內核啟動參數,這里告訴內核vexpress單板運行,串口設備是哪個tty。
注意:
我每次搭建,都忘了內核啟動參數中的console=參數應該填上哪個tty,因為不同單板串口驅動類型不盡相同,創建的tty設備名當然也是不相同的。那vexpress單板的tty設備名是哪個呢?其實這個值可以從生成的.config文件CONFIG_CONSOLE宏找到。
如果搭建其它單板,需要注意內核啟動參數的console=參數值,同樣地,可從生成的.config文件中找到。
製作根文件系統
到這里是否大功告成了呢?其實在上面的測試中,你會發現內核報panic,因為內核找不到根文件系統,無法啟init進程。
根文件系統要考慮兩個方面:
1.根文件系統的內容
如果你看過《LinuxFromScratch》,相信你會對這一步產生恐懼感,但如果一直從事嵌入式開發,就可以放下心來。根文件系統就是簡單得不能再簡單的幾個命令集和態動態而已。為什麼LinuxFromScratch會有那麼復雜,是因為它要製作出一個Linux發生版。但在嵌入式領域,幾乎所有的東西,都是mini版本,根文件系統也不例外。
本文制本的根文件系統=busybox(包含基礎的Linux命令)+運行庫+幾個字元設備
2.根文件系統放在哪裡
其實依賴於每個開發板支持的存儲設備,可以放到NorFlash上,也可以放到SD卡,甚至外部磁碟上。最關鍵的一點是你要清楚知道開發板有什麼存儲設備。
本文直接使用SD卡做為存儲空間,文件格式為ext3格式
下載、編譯和安裝busybox
wget
makedefconfig
makeCROSS_COMPILE=arm-linux-gnueabi-
makeinstallCROSS_COMPILE=arm-linux-gnueabi-
安裝完成後,會在busybox目錄下生成_install目錄,該目錄下的程序就是單板運行所需要的命令。
形成根目錄結構
先在Ubuntu主機環境下,形成目錄結構,裡面存放的文件和目錄與單板上運行所需要的目錄結構完全一樣,然後再打包成鏡像(在開發板看來就是SD卡),這個臨時的目錄結構稱為根目錄
1.創建rootfs目錄(根目錄),根文件系統內的文件全部放到這里
sudomkdirrootfs
2.拷貝busybox命令到根目錄下
sudocpbusybox-1.20.2/_install/*-rrootfs/
3.從工具鏈中拷貝運行庫到lib目錄下
sudocp-P/usr/arm-linux-gnueabi/lib/*rootfs/lib/
4.創建4個tty端終設備
sudomknodrootfs/dev/tty1c41
sudomknodrootfs/dev/tty2c42
sudomknodrootfs/dev/tty3c43
sudomknodrootfs/dev/tty4c44
製作根文件系統鏡像
1.生成32M大小的鏡像
ddif=/dev/zeroof=a9rootfs.ext3bs=1Mcount=32
2.格式化成ext3文件系統
mkfs.ext3a9rootfs.ext3
3.將文件拷貝到鏡像中
sudomkdirtmpfs
sudomount-text3a9rootfs.ext3tmpfs/-oloop
cp-rrootfs/*tmpfs/
sudoumounttmpfs
系統啟動運行
完成上述所有步驟之後,就可以啟動qemu來模擬vexpress開發板了,命令參數如下:
qemu-system-arm-Mvexpress-a9-m512M-kernel/home/ivan/qemu/linux/arch/arm/boot/zImage-nographic-append"root=/dev/mmcblk0console=ttyAMA0"-sda9rootfs.ext3
從內核啟動列印,到命令行提示符出現,激動人心的時刻出現了……
寫在後面的話
通過上面的步驟,搭建出來一個最小的qemu+arm開發環境,你可以上面的基礎上修改內核,或者增加一些測試程序在單板上運行,甚至使用單板的flash設備。
在此,你可以做純arm架構的內核開發,或者與架構無關的內核開發,也可以做單板相關的驅動開發。
⑤ 兄弟我最近剛學QT,到了交叉編譯這一塊,make之後老是出現 下面的錯誤
交叉編譯的時候要加上配置要加上:-embedded arm
例如:
./configure \
-no-pch \
-no-dbus \
-no-nas-sound \
-no-opengl \
-no-sm \
-no-xshape \
-no-xinerama \
-no-xcursor \
-no-xfixes \
-no-xrandr \
-no-xrender \
-no-fontconfig \
-no-xkb \
-no-glib \
-little-endian \
-no-mmx -no-3dnow -no-sse -no-sse2 \
-embedded arm \
-xplatform qws/linux-arm-g++ \
-qconfig smal
希望可以幫助到你
⑥ openwrt java環境
塞班支持的開發語言可能是所有手機平台的具體選擇哪一個,這取決於你自己良好的技能和發展什麼樣的程序,你打算
的Symbian C + + ,歷史上最古老,最強大的(和底層資源結合緊密),開發難度大(和傳統的C + +差異很大)。如果不知道,你想開發一些和系統結合非常緊密的應用,一般不建議
打開C或Python為S60,發展困難,但也更靈活,但應注意根據經營環境的Open C的電話超過了S60第三版FP1,但是Python已經融入仍然需要安裝在手機上操作環境。
JAVA不用說,在Android誕生之前,S60是世界上最好的Java支持的平台上,如果你擅長這個。
WRT.S60第三屆FP2或多個嵌入支持小工具是一個輕量級的Web應用程序,為用戶提供了一個關鍵。它通常是專為特定的功能,如天氣,股票,拍賣信息。頁使用標準的Web技術開發,如XHTML,CSS,JavaScript等。在這方面,該窗口小部件運行的web瀏覽器的用戶界面。如果你需要開發和網路應用程序與應用程序,WRT是一個不錯的選擇,但我聽說WRT不能在本地存儲在手機上,每次啟動必須從網路上下載數據,沒有確認。
QT,S60平台,最先進的開發工具,但大多數現有的諾基亞手機不具備的能力,以支持Qt的,需要安裝一個單獨的開發環境,但在未來, S60的發展將逐漸靠攏的Qt。
所以綜上所述,選擇什麼樣的工具S60的發展完全依賴於自己的好,你打算開發程序
我個人比較看好WRT和QT,但在很長一段時間,你想徹底擺脫了Symbian C + +的影子難以D.
最後一個,如果你想開發的S60,它經常會去諾基亞論壇,她將是您最佳的合作夥伴
android的Java不支持C + +。准備開發Android果實扁辦?機器人上線做准備
⑦ arm-linux 交叉編譯環境的建立,希望有清楚的人解答,復制的閃人
是這樣子的,計算機linux中原有的gcc是針對通用的X86等處理器而言的,編譯出來的可執行文件是只能在通用計算機上運行的,arm也是一種處理器,只不過其指令等和X86等CPU不同,所以需要有針對arm的編譯器來編譯源程序,才能在arm中運行。
我在arm9下做過linux,qt編程,需要先在PC上安裝linux,然後安裝arm-linux-gcc,同時為了可以使用arm-linux-gcc來編譯程序,需要指定環境變數,這個可以在.profile等文件中進行更改,具體辦法你查一下就知道了。或者使用export命令在終端中設置環境變數。兩種方法的結果有區別哦!
你想用2440的開發板的話就是arm9了,我還沒找到arm9的模擬工具,但是網上已經有arm7的模擬工具。
對於arm-linux-gcc,只要你安裝好並設置好了路徑(環境變數)後,在一個終端中輸入#arm-linux-gcc -v
那麼你一般可以看到你安裝的arm-linux-gcc 版本信息,到此你就可以使用它編譯你的源程序,然後將生成的可執行文件下載到arm開發板中就可以運行了。
還有什麼問題再說吧,我也是一個人摸索出來的,估計摸索了一個月才成功的在arm上運行了第一個自己的qt圖形界面程序,祝你好運!
我的建議:
一、熟悉linux 的各種操作命令(如export)
二、學會怎麼下載可執行文件到arm中
三、學會用pc控制arm上的linux
我只用過arm-linux-gcc,在你的安裝文件夾下可以找到