1. 开发源码的软件安装与升级简介
1.1 什么是开放源码,编译程序与可执行文件
一般源代码文件为纯文本档文件,经过编译程序编译,连接后会产生一个二进制的档案,该档案则为系统可认识的可执行文件.
1.2 什么是函式库
函式库相当与子程序的角色,可以被呼叫来执行某个功能.
1.3 什么是Tarball的软件
Tarball档案就是将一个程序的所有原始码档案以tar打包,压缩后的压缩档案,在tarball里面通常会包括以下档案
原始码档案,
侦测程序档案,通常为configure 或 config等名称
本软件的简易说明及安装说明
1.3 什么是make 与 configure
make 这个指令用于简化编译过程.
当执行make时,make会在当时的目录下搜寻Makefile这个文本档案,而Makefile则记录了原始码如何编译的详细信息.
configure是一个侦测程序,用来建立Makefile档案.
2. 使用传统程序语言进行编译的简单范例
2.1 简单程序,打印Hello world
#include <stdio.h>
int main(void)
{
printf("hello world");
}
编译
gcc hello.c
测试执行
./a.out
产生目标文件与可执行文件
gcc -c hello.c
gcc -o hello hello.o
2.2 主,子程序连接,子程序的编译
编写主,子程序
#include <stdio.h>
int main(void)
{
printf("hello world\n");
thanks_2();
}
#include <stdio.h>
void thanks_2(void)
{
printf("thank you \n");
}
进行程序的编译与连接
gcc -c thanks.c thanks_2.c
gcc -o thanks thanks.o thanks_2.o
2.3 呼叫外部函式库:加入链接的函式库
#include <stdio.h>
int main(void)
{
float value;
value=sin(3.14/2);
printf("%f\n",value);
}
gcc sin.c -lm -L/lib -L/usr/lib
-l:加入某个函式库
m:加入libm.so 函式库
-L 路径 :表示搜寻函式库在 -L 后面的路径.
2.4 gcc的简易用法(编译,参数与连接)
gcc -c 源码文件 仅将源码编译为目标文件
gcc -O 源码文件 -c 产生优化的目标文件
gcc -o 目标名 源码文件名 : 将输出指定的档名
3. 用make 进行宏编译
3.1 为什么要用make
1. 简化编译时下达的指令
2. 如果编译后修改了某个档案,则make 仅会编译修改的档案.
3.2 makefile 的基本语法与变量
1. #表示注释
2. 命令行前加<tab>
3. 标的与目标文件之间加冒号":"
4. 可定义变量及使用变量
main: main.o haha.o sin_value.o cos_value.o
<tab>gcc -o main main.o haha.o sin_value.o cos_value.o -lm
clean:
<tab>rm -f main main.o haha.o sin_value.o cos_value.o
4. tarball的管理与建议
4.1 使用原始码管理需要的基础软件
1. C语言编译程序 gcc
2. 简化编译的程序 make
3. 依赖的库
4.2 tarball安装的基本步骤
1. 下载压缩tarball文件档案 一般解压目录/usr/local/src 命令如下 tar -zxvf 压缩档案 解压目录
2. 解压档案后,阅读里面的安装说明文件.
3. 根据档案内容建立makefile,编译软件源码,安装软件.
5. 函式库管理
5.1 动态与静态函式库
静态函式库
扩展名一般为*.a
编译行为:一般编译整合到程序中,所以编译后的程序一般较大
独立执行的状态:编译后的程序可独立执行.
动态函式库
扩展名一般为.so
编译行为:动态函式库在程序编译时程序中只是引用一个连接.
独立执行的状态:程序不可单独执行,必须引用函式库.
5.2 程序动态函式库解析
6. 检测软件的正确性
6.1 md5sum /sha1sum
md5sum 档案
sha1sum 档案