本章主要介绍的就是那些 使用 gcc makefile 等等编辑 C 语言
Tarball 就是利用 tar打包, gzip 或 bzip2 压缩,所以 tarball 档案一般的扩展名就写成 *.tar.gz 或 *.tar.bz2
gcc 命令
gcc sin.c –lm –L/lib –L/usr/lib ( 重点在 –lm )
-l : 是 加入某个函数库 library 的意思
m: 则是 libm.so这个函式库,其中, lib 与扩展名 ( .a 或 .so ) 不需要写
-- 以上类似使用 gcc makefile 等等 内容,在另一个 blog 里有详细介绍
Tarball
如何使用具有原始码的 Tarball 来建立一个属于自己的软件。
一般来说,以 Tarball方式释放出的软件当中,为了简化编译流程,通常都是通过 make 来进行编译。
只要顺着开发商提供的 README 与 INSTALL 档案所说明的步骤来进行,安装很容易。
Tarball 安装步骤
- 取得原始档:将 tarball 档案在 /usr/local/src 目录下解压缩
- 取得步骤流程:进入新建立的目录底下,去查阅 INSTALL 与 README 等相关档案内容
- 相依属性软件安装:根据 INSTALL/README 的内容查看并安装好一些相依的软件( 非必要 )
- 建立 makefile : 以自动侦测程序,并建立 Makefile 这个档案。
- 编译:以 make编译 Makefile的参数配置文件
- 安装,以 make这个程序,根据 install指定的路径,安装。
建议 :
- 最好将 tarball 的原始数据解压缩到 /usr/local/src 中
- 安装时,最好安装到 /usr/local 这个默认路径下
- 考虑未来的反安装步骤,最好可以将每个软件单独安装在 /usr/local 底下 ( rm –R 直接就将软件全部删除 )
- 为安装到单独目录的软件之 man page 加入 man path 搜索,如果你安装软件放置到 /usr/local/software/, 那么 man page 搜索的设定中,可能就的要在 /etc/man.config 内的 40 ~ 50 行左右,写如下一行 : MAN PATH /usr/local/software/man 这样就可以使用 man 来查询该软件的在线文件
patch
利用 patch 更新原始码 ( 本身 linux 带有的一个命令,后边还会介绍 )
函数库
静态函数库 : 扩展名 .a ( 升级不方便 )
动态函数库 : 扩展名 .so ( 并没有真正的整合到程序里,而是一个指针,运行时,通过指针调用该函数 ) ( 升级方便 )
目前 大部分的 linux版本都倾向于 动态函数库
位置 : /usr/lib , lib 目录下
如何将 动态函数库 加载告诉缓存当中 ?
- 必须在 /etc/ld.so.conf 里边写 想要读入告诉缓存当中的动态函数库所在目录
- 利用 ldconfig 这个执行档将 /etc/ld.so.conf 的资料读入快取当中
- 同时也将数据记录一份在 /etc/ld.so.cache当中
ldconfig [-f conf] [-C cache]
ldconfig [-p]
-f conf : 那个 conf 指的文件名
-C cache : 那个 cache 指的是某个文件名
-p : 列出所有函数库资料内容
ldd 程序的动态函数库解析
ldd [-vdr][filename]
-v : 理出所有内容信息
-d : 重新将资料有遗失的 link 点秀出来
-r : 将 ELF 有关的错误内容绣出来