在MACOS上實(shí)現(xiàn)交叉編譯

在嵌入式開發(fā)過程中游岳,設(shè)備的存儲(chǔ)空間和運(yùn)算能力通常會(huì)比較低政敢,這時(shí)候,比如要編譯一個(gè)linux的內(nèi)核胚迫,嵌入式設(shè)備就不能勝任了喷户,所以,實(shí)現(xiàn)交叉編譯還是很必要的访锻。通過交叉編譯褪尝,我們就能夠在我們的pc上編譯出能夠在嵌入式設(shè)備上使用的可執(zhí)行程序。

?? ? ? 下面期犬,我將一步步講解如何在MAC OS上實(shí)現(xiàn)樹莓派(arm)的交叉編譯河哑。

一。新建一個(gè)磁盤映像

?? ? ? MAC OS的文件系統(tǒng)默認(rèn)是大小寫不敏感的哭懈,而交叉編譯工具鏈?zhǔn)腔诖笮懨舾械奈募到y(tǒng)的灾馒,所以我們不能直接把工具鏈安裝在原來的文件系統(tǒng)中,而是需要新建一個(gè)大小寫敏感的磁盤印象用于安裝工具鏈遣总。

實(shí)現(xiàn)這一功能并不難睬罗,使用系統(tǒng)自帶的磁盤工具(disk utility

)就可以實(shí)現(xiàn)了。打開磁盤工具旭斥,然后 文件>新建>空白磁盤映像容达,然后在彈出窗口中設(shè)置名稱為arm-x(便于后續(xù)操作),大小至少為500M垂券,格式為Mac OS擴(kuò)展(區(qū)分大小寫花盐,日志式)的映像(如下圖)。 ?



二菇爪。下載已經(jīng)編譯完的工具鏈

從下面的鏈接下載已經(jīng)編譯完的arm GNU Linux 工具鏈:

https://github.com/downloads/UnhandledException/ARMx/ARMx-2009q3-67.tar.bz2

如果你想自己一步步編譯算芯,了解工具鏈中的具體元素的話,可以看一下下面這篇文檔:

https://github.com/UnhandledException/ARMx/wiki/Sourcery-G---Lite-for-ARM-GNU-Linux-(2009q3-67)-for-Mac-OS-X

三凳宙。解壓工具鏈壓縮包到磁盤映像

在終端進(jìn)入壓縮包所在的目錄熙揍,執(zhí)行下面的指令即可:

(新建的磁盤映像默認(rèn)是掛載的,如果沒有掛載的話請(qǐng)先手動(dòng)掛載)

tar -zx -C /Volumes/arm-x/ --strip-components 1 -f ARMx-2009q3-67.tar.bz2

四氏涩。使用工具鏈

現(xiàn)在已經(jīng)能夠直接使用工具鏈了届囚,比如我寫了一個(gè)hello.c程序,現(xiàn)在可以直接使用工具鏈對(duì)程序進(jìn)行編譯是尖。

? ? ? ? 在終端執(zhí)行:


?? ? ? ? /Volumes/arm-x/bin/arm-none-linux-gnueabi-gcc hello.c -o hello

? ? ? ? 就可以獲得一個(gè)名為hello的可執(zhí)行程序意系。這個(gè)程序在mac下是不能運(yùn)行的,需要在arm處理器的設(shè)備上才能運(yùn)行饺汹。

? ? ? 當(dāng)然蛔添,如果你嫌輸入一大串路徑去調(diào)用arm-none-linux-gnueabi-gcc程序麻煩的話,可以把/Volumes/arm-x/bin目錄添加到PATH里去,這樣就能夠像使用系統(tǒng)命令一樣使用了作郭。(添加環(huán)境變量的方法很多陨囊,建議把路徑添加到~/.profile文件中去,具體操作百度一下你就知道)

五夹攒。把hello程序上傳到樹莓派上

? ? ??如果你自己知道怎么把文件上傳到樹莓派上蜘醋,那么請(qǐng)直接上傳吧。如果不會(huì)咏尝,我在這里提供兩種方法:

? ? ? ? 1.使用sftp:這種方法無需另外設(shè)置压语,可以直接把文件上傳到樹莓派,但每一次更改都需要重新上傳编检。

? ? ? ? ? ? 步驟:

sftp?pi@192.168.1.5?(ip地址根據(jù)你的地址進(jìn)行更改)

?? ? ? ? ? ? ? ? ? ? 然后輸入密碼raspberry

? ? ? ? ? ? ? ? ? ? ? put /本地文件路徑? ? /上傳到樹莓派上的目錄

(例如:put /Users/icool/Desktop/hello . )

? ? ? 2.使用NFS:這種方法需要先進(jìn)行配置胎食,但配置好后使用十分方便≡识可以將樹莓派上的文件直接映射到mac上厕怜,這樣在mac上修改即可,無需再上傳蕾总。

? ? ? ? ? ? ? 具體步驟可以參考這篇文檔:

? ?http://server.zdnet.com.cn/server/2007/0831/482007.shtml

六粥航。在樹莓派上執(zhí)行上傳的程序

ssh連接上樹莓派(或者任意方法,登陸上樹莓派即可)生百。

?? ? ? ? ? 然后進(jìn)入hello程序所在目錄递雀,執(zhí)行:

./hello

結(jié)果如下:

七。測試浮點(diǎn)程序


通過上一步可以發(fā)現(xiàn)交叉編譯得到的hello蚀浆,world程序可以在樹莓派上正常運(yùn)行缀程,下面要檢驗(yàn)一下浮點(diǎn)程序是否也可以正常運(yùn)行。

先寫一個(gè)簡單的浮點(diǎn)程序:

? ? ? ?檢驗(yàn)結(jié)果:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末市俊,一起剝皮案震驚了整個(gè)濱河市杨凑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌摆昧,老刑警劉巖蠢甲,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異据忘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)搞糕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門勇吊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窍仰,你說我怎么就攤上這事汉规。” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵针史,是天一觀的道長晶伦。 經(jīng)常有香客問我,道長啄枕,這世上最難降的妖魔是什么婚陪? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮频祝,結(jié)果婚禮上泌参,老公的妹妹穿的比我還像新娘。我一直安慰自己常空,他們只是感情好沽一,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著漓糙,像睡著了一般铣缠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上昆禽,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天蝗蛙,我揣著相機(jī)與錄音,去河邊找鬼为狸。 笑死歼郭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辐棒。 我是一名探鬼主播病曾,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼漾根!你這毒婦竟也來了泰涂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后秃殉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惠啄,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年痴荐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡驳棱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出农曲,到底是詐尸還是另有隱情社搅,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站形葬,受9級(jí)特大地震影響合呐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜笙以,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一淌实、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧源织,春花似錦翩伪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侠仇,卻和暖如春轻姿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逻炊。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國打工互亮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人余素。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓豹休,卻偏偏與公主長得像,于是被迫代替她去往敵國和親桨吊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子威根,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,162評(píng)論 25 707
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,103評(píng)論 1 32
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 29,392評(píng)論 8 265
  • 桃花潭水深千尺, 南湘一紫高萬仞视乐。 千尺難量簡友情洛搀, ...
    紅城客閱讀 414評(píng)論 11 19
  • 無數(shù)次在腦海中盤旋著是不是要寫點(diǎn)什么來警示為人父母或是祭奠您的死去。然而羞于啟齒佑淀,更是對(duì)您的尊重留美,一直只停...
    柳智慧閱讀 306評(píng)論 1 2