OpenWrt之mips交叉編譯鏈配置
時(shi)間:2018-09-25 來源:未知
和arm一(yi)樣要編(bian)譯出(chu)在mips架構上(shang)直接(jie)運(yun)行的應用程序 ,就要使(shi)用交叉編(bian)譯工(gong)具(ju)arm的一(yi)般(ban)是arm-none-linux-gcc同理mips也有自己(ji)的交叉編(bian)譯工(gong)mips-openwrt-linux-gcc在介紹(shao)(shao)交叉編(bian)譯環境之前先介紹(shao)(shao)一(yi)下openwrt源碼(ma)目錄

bin目錄(lu)是相(xiang)應(ying)目標(biao)板的二(er)進制文(wen)件含固件和SDK包等(deng)
build_dir 目(mu)錄(lu)是源碼(ma)自帶的交叉(cha)編譯鏈
package 是(shi)軟(ruan)件包,通過該文件可以編譯出相應(ying)的軟(ruan)件包
dl 是與這個openwrt對應編譯下(xia)載的源碼包(bao)
include 為(wei)openWrtr的各級Makefile
scripts - 一些(xie)perl腳本,用于軟(ruan)件(jian)包管理
target – openWrt各個平臺平臺的相(xiang)關(guan)代碼(ma)
要搭建交(jiao)叉編譯(yi)環(huan)境首先要得到交(jiao)叉編譯(yi)鏈(lian),下載完成(cheng)openwrt源碼包就有交(jiao)叉編譯(yi)鏈(lian)在staging_dir 目(mu)錄
如圖

其(qi)中toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2 即為交叉編譯鏈
進去交叉編譯鏈
cd toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/
cd ./bin
ls
如圖

在圖片上可以看到很(hen)多(duo)mips-gcc的(de)各種工具(ju)比如(ru)mips-openwrt-linux-gcc是gcc編譯器
mips-openwrt-linux-gdb 是調試器,mips-openwrt-linux-g++是C++編譯器,如(ru)果讓(rang)交(jiao)叉編譯連(lian)接全局(ju)可用只需要將編譯連(lian)接的相關路徑加到(dao)etc/bash.bashrc就(jiu)可以了。
如圖

注(zhu)意寫在同(tong)一行,然后在終端輸(shu)入如下命(ming)令更新配置(zhi) source /etc/bash.bashrc
然后在(zai)vi 上(shang)輸入(ru)mips- +TAB鍵 自動補齊如圖

寫個C程(cheng)序試試吧
1 #include
2
3 int main(int argc, const char *argv[])
4 {
5 printf("hello world \n");
6 return 0;
7 }
編譯一下

可(ke)以(yi)看到(dao)上(shang)(shang)面的(de)警告說(shuo)是找不到(dao)STAING_DIR,這個環境變量(liang) 只需要在/etc/bash.bashrc 文件中(zhong)添加上(shang)(shang)這句即可(ke)
export STAGING_DIR=$STAGING_DIR:/home/linux64/mips/
file 看(kan)一下可執行文(wen)件

可以看(kan)到該(gai)執行文(wen)件(jian)為(wei)ELF格式mips架構的32位平(ping)臺程序。

