📄 [ 永远的unix gcc howto中译版v0_2 --- 3_ gcc的安装与gcc的设定 ].htm
字号:
# gcc -V 2.6.3 -v
Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.6.3/specs
gcc driver version 2.7.2 executing gcc version 2.6.3
</FONT></B></PRE></CODE></BLOCKQUOTE>
<LI><B><FONT
face=宋体><CODE>/usr/</CODE><EM>target</EM><CODE>/(bin|lib|include)/</CODE>
如果你装了数种的目标物件,例如a.out与elf,或是某一种的交叉编译器(cross-compiler)等等,那些属於非主流目标物件(non-native
target(s))的程式库,binutils(<CODE>as</CODE>、<CODE>ld</CODE>等等)工具与标头档等都可以在这儿找到。即使你只安装了一种gcc,还是可以在这儿找到这些原本就是替它们准备的东东。如果不是在这儿,那麽就应该是在<CODE>/usr/(bin|lib|include)</CODE>了。
</FONT></B>
<LI><B><FONT face=宋体><CODE>/lib/</CODE>,<CODE>/usr/lib</CODE>
与其它的目录等都是主流系统(native-system)的程式馆目录。许多的应用程式都会用到<CODE>/lib/cpp</CODE>,因此你也需要它---作法上,不是从<CODE>/usr/lib/gcc-lib/</CODE><EM>target</EM><CODE>/</CODE><EM>version</EM><CODE>/
</CODE>目录里拷贝,就是弄个符号连结(symlink)指向那儿。
[译者注:所谓的native,是指目前你的系统是以a.out或elf的格式为主,或者内定的gcc是哪一种版本等等。native的意思是‘本土的’、‘本国的’与‘天生的’……等等;当你拿到一片CD-ROM重头至尾将Linux安装完成,让Linux出生,成为你个人特色浓厚的作业平台後,如果再加装一些不一样的目标物件,自然就有‘本土’与‘外省’(
无关政治),‘本国’与‘外国’、‘天生’与‘人为’等等的区别,同时也含有内定(default)的意思在。假若再附加上你个人的价值观判断和喜好,我想用主流(native)与非主流(non-native)来翻译应该还算恰当。]
<A name=index.16></A></FONT></B></LI></UL>
<P>
<H2><FONT color=#ccccff><B><FONT face=宋体><A name=index.17></A><A
name=ss3.3>3.3 标头档ㄋㄟ?标头档ㄋㄟ?</A> </FONT></B></FONT><B><FONT
face=宋体></FONT></B></H2>
<P><B><FONT
face=宋体>假如把你自行安装在<CODE>/usr/local/include</CODE>目录底下的标头档排除在外的话,Linux还有另外3种主要的标头档:
</FONT></B>
<P>
<UL>
<LI><B><FONT
face=宋体><CODE>/usr/include/</CODE>与其子目录底下的标头档,大部份都是由H.J.Lu发展的libc套件(libc
binary
package)所提供的。我会只说‘大部份’的原因,是因为你可能有其它来源的标头档(像是<CODE>curses</CODE>与<CODE>dbm</CODE>程式库等等)摆在这儿;尤其是,如果你现在用的是最新的libc发行系统的话(新版本不像旧版那样,已经不再支援curses或dbm了。),那东东之多是人人为之咋舌的!
[译者注:libc binary package意指以二进位形式(machine
code)储存之套件,并非原始码(text),若要以中文全称译出,则成‘libc二进位档套件’,似有聱牙之嫌,故略去binary,以libc套件通称。]
<A name=index.18></A><A name=index.19></A></FONT></B>
<LI><B><FONT face=宋体>在核心原始码的发行系统内(kernel source distribution)
,<CODE>/usr/include/linux</CODE> 与 <CODE>/usr/include/asm</CODE>
(里头有这些档案:<CODE><linux/*.h></CODE> 与
<CODE><asm/*.h></CODE>)应该有符号连结(symbolic
links)可以连结至目录<CODE>linux/include/linux</CODE> 与
<CODE>linux/include/asm</CODE>。如果你有鸿鹄之志的话,安装这些东东後,就不应该只是拿来编译核心(kernel)而已。
把原始码解压缩(unpacking)後,可能你也会发现,需要在核心的目录(kernel
directory)底下做<CODE>make
config</CODE>的动作。很多的档案都会依赖<CODE><linux/autoconf.h></CODE>的帮忙,可是这个档案却有可能因版本不同而不存在。若干核心版本里,<CODE>asm</CODE>就只是它自己的一个符号连结,仅仅是在<CODE>make
config</CODE>时才建立出来而已。 [译者注:原文提及autoconf.h时是‘Many files depend on
<CODE><linux/autoconf.h></CODE>,which otherwise may not
exist,*’。此处之otherwise之词性应为形容词(adj),指‘另一情况’、‘另一种’、‘不同的’之意,将原文形容词子句拆开来应为:(i)
Many files depend on <CODE><linux/autoconf.h></CODE>.
(ii)<CODE><linux/autoconf.h></CODE> <EM>of other
condition</EM> may not exist. 与下一句互相比对,此处应同指在不同版本之情况下。]
所以,当你在目录<CODE>/usr/src/linux</CODE>底下,解开核心的程式码时,就照著下面指示的做吧!
</FONT></B>
<BLOCKQUOTE><CODE><PRE><B><FONT face=宋体>
$ cd /usr/src/linux
$ su
# make config
(回答接下来的问题。通常回答得正不正确并不重要,除非你打算继续□造核心。)
# cd /usr/include
# ln -s ../src/linux/include/linux .
# ln -s ../src/linux/include/asm .
</FONT></B></PRE></CODE></BLOCKQUOTE><B><FONT face=宋体><A
name=index.20></A><A name=index.21></A><A name=index.22></A><A
name=index.23></A><A name=index.24></A></FONT></B>
<LI><B><FONT
face=宋体>诸如<CODE><float.h></CODE>、<CODE><limits.h></CODE>、<CODE><varargs.h></CODE>、<CODE><stdarg.h></CODE>
与<CODE><stddef.h></CODE>之类的档案,会随著不同的编译器版本而异,属於你‘个人的’档案,可以在
<CODE>/usr/lib/gcc-lib/i486-box-linux/2.7.2/include/</CODE>与其它相类似(相同)的目录名称的地方找到。
11/11/97译 5/14/98修正 </FONT></B></LI></UL>
<P>
<H2><FONT color=#ccccff><B><FONT face=宋体><A name=ss3.4>3.4
建立交叉编译器(Building cross compilers)</A> </FONT></B></FONT><B><FONT
face=宋体></FONT></B></H2>
<H3><B><FONT face=宋体>将Linux当作标的作业平台(target platform)</FONT></B></H3>
<P><B><FONT face=宋体>假设你已经拿到gcc的原始码,通常你只要依循INSTALL档的指示便可完成一切的设定。
make後面再接<CODE>configure --target=i486-linux --host=XXX</CODE> on
platform
<CODE>XXX</CODE>,就能帮你变把戏了。要注意的是,你会需要Linux还有核心的标头档;同时也需要建立交叉组译器(cross
assembler)与交叉连结器(cross linker),来源是 <A
href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/">ftp://tsx-11.mit.edu/pub/linux/packages/GCC/</A>。
</FONT></B>
<P>
<H3><B><FONT face=宋体>Linux当成原始作业平台(source
platform)而MSDOS作为标的作业平台</FONT></B></H3>
<P><B><FONT face=宋体>Ugh。很明显的,这个大概需要用到套件“emx”或是延伸套件“go”。请自行去 <A
href="ftp://sunsite.unc.edu/pub/Linux/devel/msdos">ftp://sunsite.unc.edu/pub/Linux/devel/msdos</A>看看。我并没有测试过这些个东西,所以没有办法保证什麽。
</FONT></B><!--HTML_END-->(<A
href="http://www.fanqiang.com/">http://www.fanqiang.com/</A>)
</FONT> 进入【<A
href="http://www.chinaunix.net/">UNIX论坛</A>】 </P></TD></TR>
<TR>
<TD>
<HR>
</TD></TR>
<TR>
<TD><B>相关文章</B> </TD></TR>
<TR>
<TD><A
href="http://www.fanqiang.com/a4/b2/20011116/0708001569.html">关于gcc/egcs/pgcc</A>
<SMALL>(2002-01-29 20:22:21)</SMALL></FONT><BR><A
href="http://www.fanqiang.com/a4/b2/20010829/1000001202.html">用gcc
编译,为何有不同的结果 (关于socket函数)?</A> <SMALL>(2001-08-29
10:00:00)</SMALL></FONT><BR><A
href="http://www.fanqiang.com/a1/b3/20010625/180800666.html">在Solaris系统中安装GCC编译器</A>
<SMALL>(2001-06-25 18:08:00)</SMALL></FONT><BR><A
href="http://www.fanqiang.com/a1/b5/20010622/130400635.html">GCC
HOWTO中译版V0.2 --- 8. 与发展人士联络,9. 结语</A> <SMALL>(2001-06-22
13:04:00)</SMALL></FONT><BR><A
href="http://www.fanqiang.com/a1/b5/20010622/121001634.html">GCC
HOWTO中译版V0.2 --- 7. 动态载入</A> <SMALL>(2001-06-22
12:10:01)</SMALL></FONT><BR><A
href="http://www.fanqiang.com/a1/b5/20010622/110000633.html">GCC
HOWTO中译版V0.2 --- 6. 连结</A> <SMALL>(2001-06-22
11:00:00)</SMALL></FONT><BR><A
href="http://www.fanqiang.com/a1/b5/20010622/100800632.html">GCC
HOWTO中译版V0.2 --- 5. 除错与监管</A> <SMALL>(2001-06-22
10:08:00)</SMALL></FONT><BR><A
href="http://www.fanqiang.com/a1/b5/20010622/090400631.html">GCC
HOWTO中译版V0.2 --- 4. 移植程式与编译程式</A> <SMALL>(2001-06-22
09:04:00)</SMALL></FONT><BR><A
href="http://www.fanqiang.com/a1/b5/20010622/081000630.html">GCC
HOWTO中译版V0.2 --- 3. GCC的安装与GCC的设定</A> <SMALL>(2001-06-22
08:10:00)</SMALL></FONT><BR><A
href="http://www.fanqiang.com/a1/b5/20010622/070000629.html">GCC
HOWTO中译版V0.2 --- 2. 东东在哪儿?</A> <SMALL>(2001-06-22
07:00:00)</SMALL></FONT><BR></TD></TR>
<TR>
<TR>
<TD><BR>===<A
href="http://www.fanqiang.com/cgi-bin/find.cgi?key=GCC">更多相关</A>===</TD></TR>
<TR>
<TD> </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" bgColor=#d09f0d colSpan=5 height=2><IMG height=1
src="[ 永远的UNIX GCC HOWTO中译版V0_2 --- 3_ GCC的安装与GCC的设定 ].files/c.gif"
width=1></TD></TR>
<TR>
<TD vAlign=top width="100%" colSpan=5 height=40>
<P align=center><FONT color=#ffffff>★ 樊强制作 欢迎分享 ★
</FONT></P></TD></TR></TBODY></TABLE></CENTER></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -