编译过程
*.c+gcc = *.o
将代码文件通过编译器生成可执行文件
程序员编写人能理解的代码文件,电脑无法理解
编译程序将其翻译成程序能理解的执行文件,人无法理解
#################################################################################
函数库
类似于子程序的角色,可以被呼叫来执行的一段功能函数
分为动态函数库和静态函数库
系统函数库放在/usr/include, /usr/lib, /usr/lib64里
##################################################################################
make
使用make命令时,会去当前目录下搜索MakeFile文件,以MakeFile内提供的流程生成相应的可执行程序
./configure
当下载到一个Tarball文件时,需要首先执行该命令,该命令会在当前系统内搜集相应的环境数据,自动生成MakeFile文件
make clean
会将当前生产的执行程序清除,在开始安装前,可以执行该命令,将可能遗留在当前压缩包内非本机环境的可执行文件删除
make
进行生成
make install
将生成后的可执行文件进行安装
#######################################################################################
pacth
简单的说,就是对程序进行更新,但是如果相隔多个版本,需要依次寻找相应的补丁文件,不如重新下载需求版本
########################################################################################
gcc -c logic.c
生成目标文件
gcc -o file file.o
生成可执行文件,并重命名为file
gcc -o finalFile file_0.o file_1.o
将文件0和1链接后生成执行文件
-Wall
生成编辑过程
-lm
链接函数库,-l是加入函数库的意思,m是将libm.so函数库将入到当前编译环境内
########################################################################################
makeFile基本语法
目标: 目标文件1 目标文件2
gcc -o 执行文件 目标文件1 目标文件2
当有多个执行动作时
当多个执行动作想一次执行时候
make clean main
即可执行 make clean , make main
语法注意事项:
1.变量与变量内容以=隔开,同时两边可以具有空格
2.变量左边不可以有tab
3.变量与变量内容在=两边不能具有:
4.在习惯上,变量最好以大写字母为主
5.运用变量时可以使用${变量}或者$(变量)使用
6.shell内的环境变量也可以被使用,使用方法同上一条
7.在指令内也可以对变量进行赋值操作
当指令和环境变量和MakeFile内定义了相同的变量的调用顺序
1.指令
2.makeFile
3.环境
很合理
$@
指当前的目标
##################################################################
函数库管理
静态函数库
扩展名为lib*.a 的类型
编译行文
这类函数库在编译的时候会整合到执行程序中,所以利用静态函数库编译成的文件会标胶大
独立执行状态:
可以独立执行
升级难易度:
虽然执行档可以独立执行,但因为韩式库是整合到执行档中,因此函数库升级石,整个执行档必须重新编译才能将新版的函数库整合到程序中.也就说,在升级方面,只要函数库升级了,所有将此函数库纳入的程序都需要重新编译
动态函数库
扩展名为libxxx.so的类型
编译行为:
只有当程序编译需要时,才会去调用函数库,所以文件会比较小一点
独立执行的状态:
不能被独立执行,只有当使用到函数库的时候才会去读取函数库,所以必须存在,且不能随意移动和删除
升级难易度
因为是指针指向函数库,所以不需要重新编译,只要名字相同升级后可直接使用
#########################################################################################
ldd
动态双湖库解析
查看某个文件包含那些动态函数库
查看关联函数库
#############################################################
查看软件正确性
MD5码检验