Linux 4 arm交叉編譯

2021-08-14 16:25:13 字數 2494 閱讀 8939

arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

# 解壓縮 

sudo tar -xvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

# 解壓縮後檔案為 /home/ff/arm-2009q3

sudo mv arm-2009q3 /usr/local

# 授權

sudo chmod 777 /usr/local/arm-2009q3 -r

# 配置arm編譯工具環境變數

sudo vim /etc/profile

# 在/etc/profile檔案最後新增如下內容,儲存並退出

export arm=/usr/local/arm-2009q3/bin export path=$arm:$path

# 使環境變數生效

source /etc/profile

按tab鍵,如果能給出提示 :arm-none-linux-gnueabi-

表示arm交叉編譯工具生效。

可以編寫測試test.cpp檔案,應用

# 編譯test可執行檔案 

arm-none-linux-gnueabi-g++ test.cpp -o test

將test放到tftp根目錄下(linux系統作為tftp-server如果沒有則需要先安裝tftp,嵌入式中一般內建了tftp-client)。

在嵌入式裝置中通過

tftp -g -r test 192.168.207.104

# 修改test許可權

chmod 777 test

# 執行test

./test

在路徑./software/board下,找到hi3518e_sdk_v1.0.4.0.tgz

我的ubuntu是16.04 i386版本。

sudo tar -xzf hi3518e_sdk_v1.0.4.0.tgz

這裡提示

./sdk.unpack: 2 : ./sdk.unpack: source: not found.

...dash解析器的解析效率很高,但是功能不如bash那麼強大,因此,在解析有些命令時,會出現找不到的錯誤。

修改預設指令碼解析器為bash,方法如下:

1、命令列輸入:sudo dpkg-reconfigure dash

2、選擇

3、ls -l /bin/sh 查詢確認

還可以直接修改兩個指令碼檔案,使用bash解釋執行這兩個指令碼

1、修改hi3518e_sdk_v1.0.4/scripts/common.sh檔案

將第一行 #!/bin/sh   改為   #!/bin/bash

2、修改hi3518e_sdk_v1.0.4/sdk.unpack檔案

將第一回 #!/bin/sh    改為   #!/bin/bash

修改完成,重新執行命令: sudo ./sdk.unpack

(5)安裝hi3518e交叉編譯工具

進入目錄: hi3518e_sdk_v1.0.4/osdrv/opensource/toolchain/arm-hisiv300-linux

執行指令碼cross.install.v300.

sudo ./cross.install.v300

安裝完成後,使環境變數生效:

source /etc/profile

(6)驗證

輸入arm,按tab鍵,會提示arm-hisiv300-linux-g++等提示。

(2)解壓縮

放在路徑 /usr/local/alsa-arm

(3)配置

sudo ./configure --host=arm-linux --prefix=/usr/local/alsa-arm

會在/usr/local/alsa-arm下生成makefile檔案,建立include檔案及其內的.h檔案

注釋:--host=arm-linux  :  編譯目的機器為arm

--prefix=... : 配置安裝路徑為?/usr/local/alsa-arm

(4)編譯

sudo make

sudo make install

生成include ,lib檔案。拷貝到alsa-lib下對應的標頭檔案和庫檔案目錄中。

***************** warning******************

不知什麼原因,我在sudo make install時,提示出錯,無法生成lib庫檔案。

但是網上資料都是這麼介紹,我暫且記錄下來以後有時間再去解決。

******************warning******************

我的解決方案是,直接把別人編譯後的include,lib拿過來放到arm-none-linux-gnueabi下對應資料夾中。

交叉編譯 ARM

交叉編譯 是在乙個平台上生成另乙個平台上的可執行 編譯 例 c51的交叉編譯發生在keil 整合環境上面 linux上面編寫樹莓派的 並編譯成可執行的 如 out,在樹莓派上執行 目的平台上不允許或不能夠安裝我們所需要的編譯器 1 目的平台上的資源貧乏,無法執行我們所需要編譯器 2 目的平台還沒有建...

arm交叉編譯Valgrind

1.wget 把檔案考到板子上,並同步板子的時間到現在。tar xvf valgrind 3.11.0.tar.bz2 cd valgrind 3.11.0 3.configure make make install 注意 prefix opt valgrind指定的目錄要與開發板上放置的目錄一致,...

openssl交叉編譯arm

1 交叉編譯arm環境的openssl 修改config檔案 因為晶元架構為armv7,所以新增 guessos armv7 generic linux2 對應位置 除了修改config檔案也可以在.config的時候新增 march armv7 a 引數 2 使用過程中遇到的問題 我使用的虛擬機器...