上面的说明很清楚了吧!不过,要注意的是,由于
Linux
预设是½函式库放置在
/lib
/lib64
当中,
所以你没有写
-L/lib
-L/lib64
也没有关系的!不过,万一哪天你使用的函式库并非放置在这两个
目录下,那么
-L/path
就很重要了!否则会找不到函式库喔!
除了连½的函式库之外,你或许已经发现一个奇怪的地方,那就是在我们的
sin.c
当中第一行
#include <stdio.h>
』,这行说的是要½一些定义数据由
stdio.h
这个文件读入,这包括
printf
相关设定。这个文件其实是放置在
/usr/include/stdio.h
的!那么万一这个文件并非放置在这里呢?那
么我们就可以使用底下的方式来定义出要读取的
include
文件放置的目录:
[root@study ~]#
gcc sin.c
-
lm
-
I/usr/include
-I/path
后面½的路径
( Path )
就是设定要去搜寻相关的
include
文件的目录啦!不过,同样的,默认值
是放置在
/usr/include
底下,除非你的
include
文件放置在其他路径,否则也可以略过这个项目!
透过上面的几个小范例,你应该对于
gcc
以及原始码有一定程度的认识了,再½下来,我们来稍微
整理一下
gcc
的简易使用方法吧!
21.2.4 gcc
的简易用法
(
编译、参数与链½
)
前面说过,
gcc
Linux
上面最标准的编译程序,这个
gcc
是由
GNU
计划
所维护的,有兴趣的朋
友请自行前往参考。既然
gcc
对于
Linux
上的
Open source
是这么样的重要,所以底下我们就列举
几个
gcc
常见的参数,如此一来大家应该更容易了½原始码的各项功能吧!
#
½½
原始
码编译
文件,并不制作
½等功能:
[root@study ~]#
gcc
-
c hello.c
#
hello.o
这个
文件
,但是并不
会产
binary
#
编译
候,依据作
业环
予优化
行速度
[root@study ~]#
gcc
-
O
hello.c
-
c
#
hello.o
这个
文件
,并且
½
行优化喔!
#
½
binary file
制作
½连½
的函式
与相
的路
填入
[root@study ~]#
gcc sin.c
-
lm
-
L/lib
-
I/usr/include
#
这个
指令
½
常下
在最
终连½
binary file
候,
#
-
lm
指的是
libm.so
libm.a
这个
函式
文件
#
-
L
后面½的路
刚刚
上面那
函式
的搜
#
-
I
后面½的是原始
码内
include
文件
之所在目
#
½编译
½
出成某
特定
[root@study ~]#
gcc
-
o hello hello.c
#
-
o
后面½的是要
出的
binary file
檔名
#
编译
候,
½
多的