?? 如何為嵌入式開發(fā)建立交叉編譯環(huán)境 wimax寬帶無線網(wǎng)絡(luò)技術(shù)論壇 - www_wimax_org_cn.htm
字號(hào):
<P>配置完后就可以編譯和安裝 glibc</P><BR>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#eeeeee border=1>
<TBODY>
<TR>
<TD><PRE><CODE class=section>
<FONT face="Lucida Console">$make
$make install_root=$TARGET_PREFIX prefix="" install
</FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR>
<P>然后你還要修改 libc.so 文件</P>
<P>將<BR>GROUP ( /lib/libc.so.6
/lib/libc_nonshared.a)</P>
<P>改為<BR>GROUP ( libc.so.6 libc_nonshared.a)</P>
<P>這樣連接程序 ld 就會(huì)在 libc.so
所在的目錄查找它需要的庫,因?yàn)槟愕臋C(jī)子的/lib目錄可能已經(jīng)裝了一個(gè)相同名字的庫,一個(gè)為編譯可以在你的宿主機(jī)上運(yùn)行的程序的庫,而不是用于交叉編譯的。</P><BR>
<TABLE cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD><IMG height=1 alt="" src=""
width="100%"><BR><IMG height=6 alt="" src=""
width=8 border=0></TD></TR></TBODY></TABLE>
<TABLE class=no-print cellSpacing=0 cellPadding=0
align=right>
<TBODY>
<TR align=right>
<TD><IMG height=4 alt="" src="" width="100%"><BR>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD vAlign=center><IMG height=16 alt="" src=""
width=16 border=0><BR></TD>
<TD vAlign=top align=right><A class=fbox
href="http://www-128.ibm.com/developerworks/cn/linux/l-embcmpl/#main"><B><FONT
color=#996699>回頁首</FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR>
<P><A name=N102B8><SPAN class=atitle><FONT face=Arial
size=4>建立全套編譯器(full gcc)</FONT></SPAN></A></P>
<P>在建立boot-gcc
的時(shí)候,我們只支持了C。到這里,我們就要建立全套編譯器,來支持C和C++。</P><BR>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#eeeeee border=1>
<TBODY>
<TR>
<TD><PRE><CODE class=section>
<FONT face="Lucida Console">$cd $PRJROOT/build-tools/build-gcc
$../gcc-2.95.3/configure --target=$TARGET --prefix=$PREFIX --enable-languages=c,c++
</FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR>
<P>--enable-languages=c,c++ 告訴 full gcc 支持 c 和 c++
語言。</P>
<P>然后編譯和安裝你的 full gcc</P><BR>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#eeeeee border=1>
<TBODY>
<TR>
<TD><PRE><CODE class=section>
<FONT face="Lucida Console">$make all
$make install
</FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR>
<P>我們?cè)賮砜纯?$PREFIX/bin 里面多了哪些東西</P><BR>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#eeeeee border=1>
<TBODY>
<TR>
<TD><PRE><CODE class=section>
<FONT face="Lucida Console">$ls $PREFIX/bin
</FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR>
<P>你會(huì)發(fā)現(xiàn)多了 arm-linux-g++ 、arm-linux-protoize 和
arm-linux-c++ 幾個(gè)文件。</P>
<P>G++-gnu的 c++ 編譯器。</P>
<P>Protoize-與Unprotoize相反,將K&R C的源碼轉(zhuǎn)化為ANSI
C的形式,函數(shù)原型中加入?yún)?shù)類型。</P>
<P>C++-gnu 的 c++ 編譯器。</P>
<P>到這里你的交叉編譯工具就算做完了,簡(jiǎn)單驗(yàn)證一下你的交叉編譯工具。</P>
<P>用它來編譯一個(gè)很簡(jiǎn)單的程序 helloworld.c</P><BR>
<TABLE cellSpacing=0 cellPadding=5 width="100%"
bgColor=#eeeeee border=1>
<TBODY>
<TR>
<TD><PRE><CODE class=section>
<FONT face="Lucida Console">#include <STDIO.H>
int main(void)
{
printf("hello world\n");
return 0;
}
$arm-linux-gcc helloworld.c -o helloworld
$file helloworld
helloworld: ELF 32-bit LSB executable, ARM, version 1,
dynamically linked (uses shared libs), not stripped
</FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR>
<P>上面的輸出說明你編譯了一個(gè)能在 arm 體系結(jié)構(gòu)下運(yùn)行的
helloworld,證明你的編譯工具做成功了。</P><BR>
<TABLE cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD><IMG height=1 alt="" src=""
width="100%"><BR><IMG height=6 alt="" src=""
width=8 border=0></TD></TR></TBODY></TABLE>
<TABLE class=no-print cellSpacing=0 cellPadding=0
align=right>
<TBODY>
<TR align=right>
<TD><IMG height=4 alt="" src="" width="100%"><BR>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD vAlign=center><IMG height=16 alt="" src=""
width=16 border=0><BR></TD>
<TD vAlign=top align=right><A class=fbox
href="http://www-128.ibm.com/developerworks/cn/linux/l-embcmpl/#main"><B><FONT
color=#996699>回頁首</FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR>
<P><A name=resources><SPAN class=atitle><FONT face=Arial
size=4>參考資料 </FONT></SPAN></A></P>
<UL>
<LI>Wookey ,Chris Rutter, Jeff Sutherland, Paul Webb
,《The GNU Toolchain for ARM Target HOWTO》<BR><BR>
<LI>Karim Yaghmour,《Building Embedded Linux
Systems》,USA:O'Reilly,2003</LI></UL></TD></TR></TBODY></TABLE></SPAN><BR><!----></TD></TR>
<TR vAlign=bottom bgColor=#ffffff>
<TD colSpan=6><!----></TD></TR>
<TR vAlign=bottom bgColor=#ffffff>
<TD colSpan=5><!----><FONT color=red>[樓 主]</FONT>
<!----><B>Posted:</B>2006-03-15 10:04|</TD>
<TD align=right><A href="javascript:scroll(0,0)"><IMG alt=頂端
src="如何為嵌入式開發(fā)建立交叉編譯環(huán)境 WiMAX寬帶無線網(wǎng)絡(luò)技術(shù)論壇 - www_wimax_org_cn.files/top.gif"></A>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE width="99%" align=center>
<TBODY>
<TR>
<TD height=1></TD></TR></TBODY></TABLE><!----><BR>
<TABLE cellSpacing=0 cellPadding=0 width="99%" align=center>
<FORM name=jump method=post>
<TBODY>
<TR>
<TD align=left></TD>
<TD vAlign=center align=right><SELECT
onchange="Fjumpr(this.options[this.selectedIndex].value,'../../..')">
<OPTION value="" selected>快速跳至</OPTION> <OPTION value=6>>>
無線網(wǎng)絡(luò)技術(shù)主版塊</OPTION> <OPTION value=13> |- 無線網(wǎng)絡(luò)技術(shù)基礎(chǔ)</OPTION>
<OPTION value=12> |- WiMAX技術(shù)動(dòng)態(tài)</OPTION> <OPTION
value=14> |- 方案和應(yīng)用</OPTION> <OPTION value=7> |-
無線網(wǎng)絡(luò)安全</OPTION> <OPTION value=19> |- 無線上網(wǎng)相關(guān)問題</OPTION>
<OPTION value=15> |- 3G技術(shù)動(dòng)態(tài)</OPTION> <OPTION
value=16> |- LINUX和無線網(wǎng)絡(luò)</OPTION> <OPTION value=22>>>
招聘和求職</OPTION> <OPTION value=23> |- 無線人才網(wǎng)羅</OPTION> <OPTION
value=17>>> 灌水和版務(wù)</OPTION> <OPTION value=20> |-
版務(wù)和建議</OPTION> <OPTION value=21> |- 無限灌水</OPTION></SELECT>
</TD></TR></FORM>
<TR>
<TD align=left><BR><IMG
src="如何為嵌入式開發(fā)建立交叉編譯環(huán)境 WiMAX寬帶無線網(wǎng)絡(luò)技術(shù)論壇 - www_wimax_org_cn.files/home.gif"
align=absBottom> <B><A
href="http://www.wimax.org.cn/index.php">WiMAX寬帶無線網(wǎng)絡(luò)技術(shù)論壇</A> ->
<A
href="http://www.wimax.org.cn/thread.php?fid=16">LINUX和無線網(wǎng)絡(luò)</A></B></TD>
<TD align=right><BR><A
href="http://www.wimax.org.cn/post.php?fid=16"><IMG
src="如何為嵌入式開發(fā)建立交叉編譯環(huán)境 WiMAX寬帶無線網(wǎng)絡(luò)技術(shù)論壇 - www_wimax_org_cn.files/post.gif"></A>
<A
href="http://www.wimax.org.cn/post.php?action=vote&fid=16"><IMG
src="如何為嵌入式開發(fā)建立交叉編譯環(huán)境 WiMAX寬帶無線網(wǎng)絡(luò)技術(shù)論壇 - www_wimax_org_cn.files/vote.gif"></A>
<A
href="http://www.wimax.org.cn/post.php?action=reply&fid=16&tid=354"><IMG
src="如何為嵌入式開發(fā)建立交叉編譯環(huán)境 WiMAX寬帶無線網(wǎng)絡(luò)技術(shù)論壇 - www_wimax_org_cn.files/reply.gif"></A>
</TD></TR></TBODY></TABLE><BR>
<FORM name=FORM action=../../../post.php method=post>
<TABLE class=i_table cellSpacing=1 cellPadding=0 width="99%"
align=center><TBODY>
<TR>
<TD colSpan=2>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD class=head><B>快速發(fā)帖</B></TD>
<TD class=head align=right><A
href="http://www.wimax.org.cn/htm_data/16/0603/354.html#top"><B>頂端</B></A></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD
style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px"
vAlign=top width="20%"
bgColor=#ffffff><!-- 20寬跟下面搭配 --><B>內(nèi)容</B>:<BR><FONT
face=verdana>HTML 代碼不可用<BR><BR><INPUT type=checkbox CHECKED value=1
name=atc_usesign>使用簽名<BR><INPUT type=checkbox CHECKED value=1
name=atc_convert>Wind Code自動(dòng)轉(zhuǎn)換 <INPUT type=hidden value=1
name=atc_autourl><BR><BR>[<A
href="javascript:checklength(document.FORM,'500000');">查看帖子長(zhǎng)度</A>]
</FONT></TD>
<TD
style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; PADDING-TOP: 7px"
width="80%" bgColor=#ffffff>標(biāo)題: <INPUT maxLength=45 size=45
value=Re:如何為嵌入式開發(fā)建立交叉編譯環(huán)境 name=atc_title> <!---->┆點(diǎn)擊下拉:<SPAN
title=顯示/隱藏表情圖標(biāo)列表 style="CURSOR: hand"
onclick="smilelist.style.display=smilelist.style.display=='none'?'block':'none'">[<B>表情圖標(biāo)</B>]</FONT></SPAN>
<SCRIPT language=JavaScript src=""></SCRIPT>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY id=smilelist style="DISPLAY: none">
<TR>
<TD>
<FIELDSET style="WIDTH: 99%"><LEGEND>選擇表情:</LEGEND>
<DIV style="OVERFLOW: auto; HEIGHT: 0px">
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><!-- --><A href="javascript:addsmile('[s:1]')"><IMG
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -