回文章列表
作者ispeter.bbs@ptt.cc (isPeter) 看板: linux
標題Re: [問題] cross compiler
時間批踢踢實業 (2008/04/18 Fri 09:35:25)
※ 引述《Helilo (哈里路)》之銘言:
: 小弟是因為修專題必須將snort移植到embedded system上(ARM)
: 才踏進Linux這個領域的@@"
: 目前也才看了鳥哥私房菜上基礎文件的一半
: 如果問了很多蠢問題 還請多多包涵<(_ _)>
: 助教給了我一個tarball
: 他只叫我把它打開後(打開後資料夾叫arm_compiler)
: 然後告訴我裡面的 ~/arm_compiler/bin/gcc 就是cross compiler
: 目的是要把snort和libpcap都移植到embedded system(ARM)上面
: 其他甚麼也沒講@@"
: 於是小弟就在google上逛了很久
: 看到許多cross compile的相關文章都是直接有個叫做
: arm-linux-gcc的指令
: 和助教給的東西好像又不太一樣
: 此外
: 因為是要把整個snort和libpcap套件都移植過去
: 好像也不像有的文章裡的
: 只要單純編譯一個檔就可以
: 所以目前完全沒有頭緒
: 對了 助教是有叫我改Makefile說把gcc改掉
: 我打開Makefile
: 看到有一些environment variable: CC=gcc CPP=gcc -E CXX=g++之類的
: 小弟的想法是這些gcc應該是linux本身的gcc
: 所以就把它改成CC=~/arm_compiler/bin/gcc
: 但是這樣make 並 make install的結果
: 好像和原來沒有差異
: 不知板上各位前輩能否指點迷津
: 感激不盡<(_ _)>

以整個流程來說,你現在是在第一步驟建立 toolchain、編譯環境
一般來說,實驗版廠商會提供 toolchain 環境
大部分會將相關文件或 toolchain 相關設定說明及程式附於光碟

什麼是 toolchain ?

若以我接觸過的板子(ARM7,詳細型號忘記了)來說
他建議我灌 Redhat 9
之後執行光碟內附安裝檔案,將 toolchain 安裝至 Redhat9
安裝完畢後會發現,他將所有必需的檔案及設定都搞定了
比如符合 ARM7 的 Linux Kernel 及 arm-linux-gcc PATH
包括 uClinux 也準備好了
我僅需要執行他提供的 Shell Script 便能產生 image
這個 image 可以直接餵給 ARM 版用。
所以我認為 toolchain 應該會由開發版廠商提供的

當你 toolchain 都搞定好了,可以正常使用了
接下來才考慮 Porting

snort 建議你去找找看 uClinux 裡面有沒有這套件
若有的話, 需要改的東西會比較少
根據你的 toolchain 去修改 Makefile
或根據 Compiler 的錯誤去找 Source Code Bug

若你直接拿給 x86 平台用的 snort 來 Porting 的話
那 .... 相對來說
會比 uClinux 的 snort 辛苦很多


我只是 Embedded System 新手,不保證所述完全正確,僅希望我的經驗能對你有幫助。

--
※ 發信站: 批踢踢實業坊(ptt.cc) 
◆ From: 210.202.26.1
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻