程序包的编译安装
testapp-VERSION-release.src.rpm
安装后,使用rpmbuid 命令制成二进制的rpm包,然后安装
源代码的组织格式
多文件:多文件中的代码之间,很可能是跨文件依赖关系
我们编译安装时,用户解决这些依赖关系是非常困难的,所以需要项目管理工具
C/C++: make
java: maven
源代码安装
源代码---> 预处理--->编译(gcc)--->汇编--->连接-->执行
make 工具自动帮助我们执行预处理,编译,汇编,连接
make在每个源文件中都有make配置文件(makefile),这个配置文件帮助选择使用哪个执行器,哪个处理器,哪个编译器,哪种汇编,哪个连接器,先编译哪个文件,后编译哪个文件
注:make不是编译工具,它是调用gcc和其他编译完成的。它是项目管理工具
编译安装
./configure
通过选项传递参数,指定启用特性,安装路径。执行时,会参数用户的指定以及Makefile.in 生成makefile(makefile是根据makefile.ini里的函数生成的)
2)要检查指定的特性,所依赖的外部环境(如果外部环境的依赖包没有,则./configure 会报错)
./configure
1 .指明软件的特性和路径
--help 查看帮助
选项分类
安装路径设定
--prefix=/PATH/TO/SOMEWHERE (默认/usr/local)
指定默认安装路径
--sysconfdir=DIR 配置文件安装路径
optional Features: 可选特性
--disable-FEATURE
--enable-FEATURE[=ARG]
optional packages: 可选程序包
--with-PACKAGE[=ARG] 启用功能依赖包
--without-PACKAGE
make
根据makefile 文件构建应用程序
make install
安装后配置
1 .导出二进制程序至PATH环境变量中,编辑文件/etc/profile.d/NAME.sh
2 .导出库文件路径 ,编辑 /etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录在此文件中
让系统重新生成缓存ldconfig [-v]
3 .导出头文件(基于连接方式导入)
ln -sv 头文件所在目录 目标目录
4.导出帮助手册
编辑/etc/man.config
文件
添加一个MANPATH
vim /etc/man.config
MANPATH /usr/local/apace2/man
开发工具
autoconf: 生成configure 脚本
automake: 生成makefile.ini 文件
因为每个应用的特性不一样,所以configure的脚本中每个应用也不一样,所以autoconf 需要制定一个配置文件来生成configure脚本,automake同样也需要一个配置文件,来生成makefile.in
建议:安装前查看INSTALL,README
开源程序获取
- 官方自建
- 代码托管
sourceForge
Github.com
code.google.com
编译C源码
前提:提供开发工具及开发环境
开发工具: make,gcc
开发环境: 开发库,头文件
glibc:标准库
linux: 通过包组 提供开发组件
centos6: "Development Tools" "server platform Development(服务器平台开发组件)"
centos7: 开发工具组
网友评论