首先安裝交叉編譯器,網路「arm-linux-gcc」就可以一個編譯器壓縮包。
把壓縮包放到linux系統中,解壓,這樣就算安裝好了交叉編譯器。
設置編譯器環境變數,具體方式網路。如打開 /etc/bash.bashrc,添加剛才安裝的編譯器路徑 export PATH=/home/。。。/4.4.3/bin:$PATH。這樣是為了方便使用,用arm-linux-gcc即可,不然既要帶全路徑/home//bin/arm-linux-gcc,這樣不方便使用。
編譯c文件。和gcc編譯相似,把gcc用arm-linu-gcc代替就是了。編譯出來的就可以放到arm上運行了。</ol>
❷ 如何在eclipse中配置arm交叉編譯環境
如何在eclipse中配置arm交叉編譯環境
我們可以想像 這里 應該被框架調用的可能性比較大了,那麼maprece 框架是怎麼分別來調用map和rece呢?
還以為分析完map就完事了,才發現這里僅僅是做了maprece 框架調用前的一些准備工作,
還是繼續分析 下 maprece 框架調用吧:
1.在 job提交 任務之後 首先由jobtrack 分發任務,
在 任務分發完成之後 ,執行 task的時候,這時 調用了 maptask 中的 runNewMapper
在這個方法中調用了 MapContextImpl, 至此 這個map 和框架就可以聯系起來了。
❸ 做ARM交叉編譯環境出現以下問題,請幫忙。。。。
你這個不是錯誤信息。
❹ 計算機平台和ARM嵌入式系統平台編譯環境的異同(越詳盡越好)
宿主機跟目標板的關系,開發ARM嵌入式,需要首先搭建一個交叉編譯的環境,這個環境就是在計算機平台上搭建的,至於使用哪個Linux操作系統,如ubuntu、fedora、red hat,這些都是關系不大的,因為這些計算機上的操作系統只是提供一個編譯環境,真正的角色是交叉編譯的工具鏈的搭建。萬事俱備後,就可以通過FTP NFS TFTP 等向ARM目標板下載編譯後的執行文件或者下載文件到這上面。就這個關系!
❺ keil arm的編譯環境 疑問
「換了幾台筆記本了,最終效果都是一樣」,是什麼效果一樣?跟你的那個一樣還是跟你同事的那個一樣?換筆記本時,keil都是重新裝的嗎?
既然你確定「優化選項」是一樣的,那就把keil卸了重裝吧,最好用最新版本的。
keil環境挺簡單的,基本不用動什麼的。你用jlink之類的進行跟蹤了嗎?我有點懷疑是你的一些地址寫錯了。
❻ 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,在你的安裝文件夾下可以找到
❼ 為什麼對arm進行裸機開發的時候不需要交叉編譯環境,而進行linux移植的時候就需要呢
交叉編譯只是用arm-linux-gcc,為什麼要用這個編譯器,因為Linux系統是用這個編譯的,你想運行在linux平台運用程序,必須和系統是同一個版本的編譯器。不是同一個版本都不能運行。
邏輯開發你也可以用gcc編譯器啊,同樣可以編譯出bin文件,同樣可以運行。
我們平時用的都是IDE,說白了就是在gcc的基礎上加了簡單容易操作的窗口,像添加斷電、查看運行狀態,這些在gcc下也是可以實現的,調試工具叫gdb。
❽ 如何安裝arm-liunx交叉編譯環境
sh ./arm-elf-tools-20040427.sh安裝
----------------------------------------------
一、准備工作
首先需要一台運行Linux操作系統的PC以完成我們的編譯工作。
其次要准備如下一些源文件。
1、源文件准備
binutils-2.14.tar.gz
ftp://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz
gcc-core-2.95.3.tar.gz
ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-core-2.95.3.tar.gz
gcc-g++2.95.3.tar.gz
ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-g++-2.95.3.tar.gz
glibc-2.2.4.tar.gz
ftp://ftp.gnu.org/gnu/glibc/glibc-2.2.4.tar.gz
glibc-linuxthreads-2.2.4.tar.gz
ftp://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.2.4.tar.gz
linux-2.4.21.tar.gz
ftp://ftp.kernle.org/pub/linux/kernel/v2.4/linux-2.4.21.tar.gz
patch-2.4.21-rmk1.gz # linux kernel patch for arm
ftp://ftp.arm.linux.org.uk/pub/linux/arm/kernel/v2.4/patch-2.4.21-rmk1.gz
binutils-2.14.tar.gz這個壓縮包包含有ld,ar,as等一些產生或者處理二進制文件的工具。
gcc-core-2.95.3.tar.gz這個壓縮包是GCC的主體部分,GCC是GNU Compiler Collection的簡稱,顧名思義,它能夠編譯很多種高級語言,例如C、C++,Java等,而這個壓縮包中含有C編譯器,及公共部分,而對其他語言的支持,採用另外的壓縮包單獨發布。
gcc-g++2.95.3.tar.gz,這個壓縮包就是為使GCC能夠編譯C++程序而單獨發布的。
glibc-2.2.4.tar.gz,libc是很多用戶層應用都要用到的庫,kernel和bootloader不需要這個庫的支持,這個庫主體部分封裝在這個壓縮包內。
glibc-linuxthreads-2.2.4.tar.gz,這是Libc用於支持Posix線程而單獨發布的一個壓縮包。
linux-2.4.21.tar.gz,這個壓縮包就是Linux的內核。
patch-2.4.21-rmk1.gz,這個壓縮包是用來給Linux內核打補丁,以使其可以支持ARM的硬體平台。
2、工作目錄搭建
我們創建如下的目錄樹結構
mkdir arm
mkdir tool-chain
mkdir build-dir
mkdir src-dir
mkdir setup-dir
mkdir kernel
arm這個目錄是我們的最頂層工作目錄,我們所有的編譯工作都在這里完成。
tool-chain這個目錄是我們交叉編譯工具的安裝位置,它下面的bin子目錄存放我們創建好的編譯器,匯編器,連接器,以及編譯好的C庫也會安裝到這個目錄之下。
setup-dir這個目錄用來存放我們下載的壓縮包。
src-dir這個目錄用於存放binutils,gcc,glibc解壓之後的源文件。
kernel這個目錄用來存放內核文件,對內核的配置、編譯工作將在這個目錄中完成。
build-dir用來編譯src-dir中的源文件,具體就是binutils,gcc,glibc的編譯工作將在這個目錄下完成。這種源文件目錄和編譯目錄分離的編譯方式是GNU所推薦的。
cd ./src-dir
tar –xvzf ../setup-dir/ binutils-2.14.tar.gz
tar –xvzf ../setup-dir/ gcc-core-2.95.3.tar.gz
tar –xvzf ../setup-dir/ glibc-2.2.4.tar.gz
tar –xvzf ../setup-dir/ glibc-linuxthreads-2.2.4.tar.gz –directory=./glibc-2.2.4
這樣我們在src-dir目錄下就形成了3個源文件目錄binutils-2.14,gcc-core-2.95,3,glibc-2.2.4,其中分別存放著binutils tools,gcc,glibc的源代碼。接下來我們到build-dir中創建3個與這三個源文件目錄對應的編譯目錄。
cd ../build-dir
mkdir ../build-dir/build-binutils
mkdir ../build-dir/build-gcc
mkdir ../build-dir/build-glibc
我們將在這三個目錄中完成對binutils tools, gcc, glibc的配置和編譯工作。下面還要把內核文件解壓到kernel目錄下,並打補丁。
cd ../kernel
tar –xvzf ../setup-dir/ linux-2.4.21.tar.gz
cd ./linux-2.4.21
patch –p1 < ../../setup-dir/ patch-2.4.21-rmk1
二、開始創建
1、 確定幾個系統變數
cd ../../
export TARGET=arm-linux
export PREFIX=../arm/tool-chain
export TARGET_PREFIX=$PREFIX/$TARGET
export KERNEL_SOURCE_LOCATION=../arm/kernel/linux-2.4.21
export PATH=$PREFIX/bin:$PATH
幾個系統變數經常要用到,TARGET定義了目標機,PREFIX是工具鏈的安裝目錄,KERNEL_SOURCE_LOCATION是內核文件位置。
TARGET這個變數對於ARM體系的目標機來說取值為arm-linux,對於其他體系結構的機器如ppc,mips的取值的詳細清單可以參見glibc目錄下的INSTALL文檔.
2、 創建binutils
運行如下命令來創建binutils
cd ./build-dir/build-binutils
configure ../../src-dir/binutils-2.14/configure –target=$TARGET –prefix=$PREFIX
make
make install
這時$PREFIX/bin下創建了一些文件,包括arm-linux-ld,arm-linux-as等。
3、 編譯內核
cd ../../kernel/linux-2.4.21
改Makefile文件使
ARCH = arm
CROSS_COMPILE=arm-linux-
make menuconfig
在System Types中選擇正確的硬體類型
make dep
之後執行如下操作
mkdir $TARGET_PREFIX/include
cp dR $KERNEL_SOURCE_LOCATION/include/arm-asm \
RGET_PREFIX/include/asm
cp dR $KERNEL_SOURCE_LOCATION/include/linux \
RGET_PREFIX/include/linux
4、 創建boot-trap gcc,這個GCC沒有glibc庫的支持,所以只能用於編譯內核,bootloader等,後面創建C庫也要用到這個編譯器,所以創建它主要是為創建C庫做准備,如果只想編譯內核和bootloader那麼,就可以到此結束。
cd ../../build-dir/build-gcc
../../src-dir/gcc-2.95.3/configure –target=$TARGET –prefix=$PREFIX \
--with-headers=$ERNEL_SOURCE_LOCATION/include –enable-language=c \
--disable-threads
然後修改src-dir/gcc-2.95.3/gcc/config/arm/t-linux文件,在
TARGET_LIBGCC2_CFLAGS中添加如下兩個定義
-Dinhibit-libc –D__gthr_posix_h
make
make install
這時$PREFIX/bin下創建了一些文件,主要創建了arm-linux-gcc。
5、 創建gblic
cd ../build-glibc
export CC=arm-linux-gcc
../../src-dir/glibc-2.2.4/configure –host=$TARGET –prefix=$TARGET_PREFIX \
--enable-add-ons
make
make install
將glibc庫安裝完之後,我們要到$TARGET_PREFIX/lib這個目錄下修改libc.so文件,將其中
GROUP(/lib/libc.so.6 /lib/libc_noshared.a)
這個命令腳本中的/lib 的絕對路徑去掉, 也就是改為如下的形式
GROUP(libc.so.6 libc_noshared.a)
這樣下一步創建完整的編譯器時,才不至於導致錯誤.
6、 創建功能健全的GCC,並創建G++
在成功創建了libc之後,我們就可以創建功能豐富的GCC編譯器了,並且可以創建支持編譯C++程序的G++。
cd ../../src-dir
tar –xvzf ../setup-dir/ gcc-g++2.95.3.tar.gz
cd ../build-dir/build-gcc
export CC=gcc
../../src-dir/gcc-2.95.3/configure –target=$TARGET –prefix=$PREFIX \
–enable-language=c,c++
然後修改src-dir/gcc-2.95.3/gcc/config/arm/t-linux文件,在
TARGET_LIBGCC2_CFLAGS中去除如下兩個定義
-Dinhibit-libc –D__gthr_posix_h
make
make install
7,至此我們成功的創建了ARM Linux的交叉編譯工具。
------------------------------------------------------
可以去www.arm16.com看看
❾ 自己製作 arm-linux 交叉編譯環境 ,為什麼沒有生成version.h和autoconf.h
using defaults found in /boot/config-2.6.32-21-generi
很顯然,make menuconfig的時候去/boot下面找的系統默認配置文件,沒有使用工作目錄下的配置文件。
將/boot下所有的文件先備份一下,然後刪除所有的 *config* 文件試試
❿ 搭建arm的交叉編譯環境需要哪些文件
這個過程如下 1. 下載源文件、補丁和建立編譯的目錄 2. 建立內核頭文件 3. 建立二進制工具(binutils) 4. 建立初始編譯器(bootstrap gcc) 5. 建立c庫(glibc) 6. 建立全套編譯器(full gcc) 下載源文件、補丁和建立編譯的目錄