第22章 软件安装 原始码与tarball

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 档案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值