linux系统运行的二进制文件
linux上的程序都是可以查看源码的
可以通过高级语言编写程序-编译成系统识别的语言-执行程序
一些概念,函数库,个人理解就是编译好的程序,可以直接在程序里面调用,类似计算机语言程序里面的函数调用,开始调用到最后返回结果。可以想象java里面的lib库下面的*.jar包
make命令
软件开发商提供检测程序测试环境是否支持(包括内核版本,依赖的库等),检测文件的名字一般configure或者config。
涉及到的几个概念:软件源码,检测程序,gcc编译程序,make,makefile可执行的二进制文件
简单将就是将源码先打包在压缩。*.tar.gz或者*.tgz,? ?还有升级版的*.tar.bz2
编写程序.c-生成编译文件.o-生成可执行文件,和java语言编译差不多,都是把源码编译下生成可执行文件的过程
编译生成o文件
生成可执行文件
测试结果:
主程序,子程序,主程序里面调用子程序,例如,p1,p2子程序,gcc -c编译生成p1.o,p2.o,当p2源码有改动时候,我们自需要重新gcc -c p2生成新的p2.o文件,然后在gcc -o? 目标文件 p1.o,p2.o即可,对于没有改动的p1.c不用重新编译成p1.o文件,之前编译成的可以直接使用
gcc -c
gcc -o
重新编写p2.c代码
重新生成p2.o文件
将修改后的p2.o 和之前编译成*.o文件再一次编译成可执行文件
测试结果下图
整体感觉,和高级语言对比,感觉没啥区别,同样的道理。