源码需要编译,才能得到可执行文件,命令一般为
gcc -c hello_world.c -o hello_world
得到的hello_world程序为二进制可执行程序
编译过程可分为四步
预处理
编译:检查并转为汇编
汇编:得到机器语言目标文件
链接:链接外部库(静态)与多个目标文件
上述阶段结束后,得到可运行的程序
应用程序可从源码安装
下载源码并解压后,可依上述过程编译执行
一般项目都会更加复杂一点,则遵循以下过程:
./configure
运行configure脚本,确定编译参数,使得编译后程序可在本机环境下运行。生成的makefile会依据文件依赖关系决定编译顺序,配置文件还会记载标准库和头文件的位置
make
编译源码,在目标安装位置生成目录,得到可执行文件
make install
在操作系统登记应用名,应用描述等
一般应用的发布并不是源码形式,而是会将编译过后得到的可执行程序,需要的数据文件,和一些依赖库以某种目录结构打包。
现实中大部分软件使用动态链接,在程序运行时接入,可在程序间共享。linux下为so文件,windows下为dll文件