在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Openwrt開發指南 第26章 編寫應用程序交叉編譯

嵌入式大雜燴 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2023-07-15 16:06 ? 次閱讀

1 交叉編譯環境簡介

首先說一下什么是交叉編譯:我們在 ubuntu 中寫了一個程序,比如 main.c,然后使用 ubuntu 的編譯器進行編譯,生成的可執行文件自然可以在 ubuntu 中運行。但是生成的可執行文件可以在我們的開發板中能運行嗎?答案當然是否定的,原因很簡單,就是平臺不同,芯片架構不同。那我們如何使得 ubuntu 編譯出來的可執行文件在開發板上面運行呢,當然就要借助一些工具了,通過一些工具進行對程序編譯,生成在開發板上可以運行的文件,那這些工具我們把它叫做交叉編譯工具,把這種從一個平臺開發另一個平臺應用的方式稱為交叉編譯。

Toolchain 即交叉編譯工具,要在 ubuntu 編譯我們寫的應用程序使得生成開發板可以執行的文件,必須有這一套工具才可以進行!

2 交叉工具的配置

首先,我們查看是否已經有交叉編譯工具:

1.png

顯然沒有Toolchain!

注意:在本節教程的附件里編者已經給出了交叉編譯工具。

好的,配置OpenWrt 使得支持toolchain。在openwrt/目錄下運行 make menuconfig,并且選中 toolchain:

2.png

保存之后,編譯 OpenWrt:

$make V=99

編譯完成之后,我們可以查看是否有交叉編譯工具包的存在。

3.png

OK,解壓交叉編譯工具包:解壓完成后,然后我們cd 到解壓完成后的工具包中,再進入該工具包中的另一個目錄,找到 bin 文件夾,同樣cd 進去 bin 文件夾。

好了,現在我們就擁有交叉編譯工具了,我們要把交叉編譯工具的路徑保存在一個環境變量中,這樣做是為了,我們編譯程序時會根據這個環境變量找到交叉編譯工具的位置。以 root 的權限編輯如下文件:

#vi /etc/environment

注意:也可用sudo vi /etc/environment。

編輯前該文件的內容如下(我的ubuntu):

4.png

好的,增加我們交叉編譯工具路徑后(注意以冒號分隔)。為了讓這個環境變量起作用,我們重啟 ubuntu!

【注意】還可如下配置。

  1. 拷貝OpenWrt-Toolchain-ramips-rt305x_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2到虛擬機中的/opt/目錄下
  2. 解壓OpenWrt-Toolchain-ramips-rt305x_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2, 用命令

sudo tar -xvf OpenWrt-Toolchain-ramips-rt305x_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2 //必須用超級用戶模式

  1. 編輯~/.bashrc文件, vi ~/.bashrc

在文件最后增加一行

export PATH=$PATH: /opt/OpenWrt-Toolchain-ramips-rt305x_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin

保存退出

  1. 運行 source ~/.bashrc 讓文件生效
  2. 測試

方法一:

在命令行下輸入 mipsel-o 然后按tab鍵看會不會自動補全

方法二:

輸入:mipsel-openwrt-linux- -v

5.png

3 測試交叉編譯環境

重啟完成后,我們編寫一個非常簡單的應用程序:

#include < stdio.h >
int main ()
{
    printf(“hello world!n”);
    return 0;
}

然后使用交叉編譯工具進行編譯!

6.png

編譯完成后生成可執行文件:

7.png

然后我們嘗試在ubuntu中運行可執行文件 main:

8.png

很顯然,這個可執行文件無法在 ubuntu 上運行,但是,卻可以在我們開發板中運行,我們把可執行文件移動到開發板中進行執行:

9.png

注意:main的權限應為777,否則無法運行。

10.png

【注意】交叉編譯工具鏈編譯的時報沒有STAGING_DIR,它在ubuntu上的/home/farsight/chaos_calmer/staging_dir,在ubuntu上鍵入下面命令

export STAGING_DIR=/home/farsight/chaos_calmer/staging_dir

或者放入.bashrc中,

$vi ~/.bashrc

在最后一行添加export STAGING_DIR=/home/farsight/chaos_calmer/staging_dir即可

$ source ~/.bashrc

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Ubuntu
    +關注

    關注

    5

    文章

    563

    瀏覽量

    29751
  • 交叉編譯
    +關注

    關注

    0

    文章

    32

    瀏覽量

    12641
  • 應用程序
    +關注

    關注

    37

    文章

    3268

    瀏覽量

    57699
  • OpenWrt
    +關注

    關注

    10

    文章

    130

    瀏覽量

    39302
收藏 人收藏

    評論

    相關推薦

    Openwrt開發指南 25 配置OpenWrt支持網絡攝像頭

    Openwrt開發指南 25 配置OpenWrt支持網絡攝像頭
    的頭像 發表于 07-13 08:56 ?2423次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>25<b class='flag-5'>章</b> 配置<b class='flag-5'>OpenWrt</b>支持網絡攝像頭

    Openwrt開發指南 2 OpenWrt開發環境搭建

    燒寫到設備中;另外,嵌入式設備的資源并不足以用來開發軟件。所以需要用到交叉開發模式:在主機上編輯、編譯軟件,然后在目標板上運行、驗證程序。對
    的頭像 發表于 06-27 09:09 ?7161次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>2<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b><b class='flag-5'>開發</b>環境搭建

    Openwrt開發指南 3 OpenWrt下載及配置

    編譯OpenWrt首先需要下載源碼,OpenWrt的源碼是通過git下載,OpenWrt目前已經很好的支持了MT7620、MT7821等芯片,因此O
    的頭像 發表于 06-27 09:10 ?5818次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>3<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>下載及配置

    Openwrt開發指南 4 燒寫OpenWrt固件

    對于一個完整的嵌入式系統,它由U-boot、內核(Linux)、文件系統、應用程序四部分組成。那么這四部分之間的關系是怎么樣的呢?OpenWrt是屬于哪部分呢?
    的頭像 發表于 06-27 09:11 ?4828次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>4<b class='flag-5'>章</b> 燒寫<b class='flag-5'>OpenWrt</b>固件

    Openwrt開發指南 12 添加OpenWrt軟件包

    OpenWrt是一個比較完善的嵌入式Linux開發平臺,在無線路由器應用上已有4000多個軟件包。我們可以在其基礎上增加軟件包,以擴大其應用范圍。在OpenWrt中增加軟件包極其方便,按照
    的頭像 發表于 06-29 09:09 ?8901次閱讀

    Openwrt開發指南 13 OpenWrt啟動流程

    任何系統的啟動都是開發人員首要關注的問題,因為只有了解了系統的啟動流程和啟動機制,才能真正掌握一個系統,如果對啟動的啟動不熟悉的話,是不可能真正用好一個系統,openwrt系統也不例外,他的啟動和一般的嵌入式系統啟動還有所區別,現在咱們就分析一下
    的頭像 發表于 06-29 09:09 ?3553次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>13<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>啟動流程

    Openwrt開發指南 18 驅動開發之字符設備應用程序

    在前面的章節中, 我們成功的寫出了我們自己的驅動程序, 并且向應用程序提供了 open、read、write 三個接口,那么接下來我們就來編寫應用程序,調用這些接口。
    的頭像 發表于 07-02 09:21 ?2574次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>18<b class='flag-5'>章</b> 驅動<b class='flag-5'>開發</b>之字符設備<b class='flag-5'>應用程序</b>

    Openwrt開發指南 20 驅動開發之LED應用程序

    在前面的章節中, 我們成功的寫出了我們自己的驅動程序, 并且向應用程序提供了 open、ioctl 兩個接口,那么接下來我們就來編寫應用程序,調用這些接口。
    的頭像 發表于 07-03 09:02 ?2687次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>20<b class='flag-5'>章</b> 驅動<b class='flag-5'>開發</b>之LED<b class='flag-5'>應用程序</b>

    Openwrt開發指南 22 Openwrt串口的使用2

    在上一中,我們成功的讓驅動程序支持了串口 2,并且做了簡單的測試。接下來,我們就為串口 2 添加一個應用程序,從而實現 Wi-Fi 串口。實現過程非常簡單,首先進入 OpenWrt
    的頭像 發表于 07-05 09:09 ?4109次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>22<b class='flag-5'>章</b> <b class='flag-5'>Openwrt</b>串口的使用2

    Openwrt開發指南 24 配置開發板支持U盤

    Openwrt開發指南 24 配置開發板支持U盤
    的頭像 發表于 07-13 08:55 ?3362次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>24<b class='flag-5'>章</b> 配置<b class='flag-5'>開發</b>板支持U盤

    Labview開發技術叢書--大型應用程序與多人開發指南

    Labview開發技術叢書--大型應用程序與多人開發指南
    發表于 09-02 18:07

    Mali GPU OpenGL ES應用程序開發指南

    這是適用于馬里GPU的OpenGL ES應用程序開發指南。 它提供了使用OpenGL ES 1.1和OpenGL ES 2.0 API為馬里GPU開發應用程序
    發表于 08-30 07:57

    MATLAB Runtime Server 應用程序開發指南

    MATLAB Runtime Server 應用程序開發指南:The MATLAB Runtime Server is a variant of MATLAB®
    發表于 02-21 08:40 ?40次下載

    ST微電子STM8的C交叉編譯用戶指南

    《STM8交叉編譯器用戶指南》是程序員為STM8微控制器環境編寫C程序的參考
    發表于 06-04 08:00 ?12次下載
    ST微電子STM8的C<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>用戶<b class='flag-5'>指南</b>

    4程序編寫和調試環境簡介PPT下載

    4程序編寫和調試環境簡介PPT下載
    發表于 10-08 14:49 ?13次下載
    主站蜘蛛池模板: 成人国产精品一级毛片视频| 真实子伦视频不卡| 黄色a网| 国产成人v爽在线免播放观看| 成 人色 网 站999| 天天做天天爰夜夜爽| 久久午夜网| 婷婷六月丁香午夜爱爱| 免费观看高清视频| 最新天堂网| 亚洲高清一区二区三区| 国产在线欧美精品卡通动漫| 性欧美xxx 不卡视频| 全国男人的天堂天堂网| 狠狠色狠狠色综合日日小蛇| 奇米888在线看奇米999| tueb69xxxxxhd日本| 在线观看视频你懂的| 色伊人久久| 黄色小视频免费| 午夜国产大片免费观看| 国产紧缚jvid| 美女写真福利视频| 色多多污网站在线观看| 国产国语videosex另类| 天天操夜夜爽| 非常黄的网站| 亚洲成a人片在线观看中| 成人狠狠色综合| 4444kk在线看片| 五月婷婷六月色| 狠狠躁夜夜躁人人爽天天段| 国产精品资源在线| 中文在线最新版天堂| 国产欧美久久久精品影院| 狠狠操狠狠搞| 中国日韩欧美中文日韩欧美色| 国产一区二区三区免费大片天美| 免费特黄视频| www.亚洲欧美| 九色窝|