编译安装
程序员文章站
2022-04-28 09:01:57
编译安装 程序包编译 编译安装 ......
编译安装
程序包编译
程序包编译安装:
Application-VERSION-release.src.rpm --> 安装后,使用 rpmbuild 命令制作成二进制格式的rpm 包,而后再安装源代码--> 预处理--> 编译--> 汇编--> 链接--> 执行.
源代码组织格式:
多文件: 文件中的代码之间,很可能存在跨文件依赖关系
C 、C++ : make 项目管理器,configure脚本 --> Makefile.in --> Makefile
java: maven
编译安装
C 语言源代码编译安装三步骤:
1。./configure
(1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定,以及makefile.in 文件生成makefile
(2) 检查依赖到的外部环境,如依赖的软件包
2。make(项目编辑器):
根据makefile 文件,构建应用程序
为了加快编译速度,可以采用这条命令make -j 4 && make install。-j表示可以多进程,多线程的并发编译。
如果处理器数量为4个,-j最多写4。
3。make install:
复制文件到相应路径
开发工具:
同时开发者也可以自己生成 configure。使用autoconf生成configure脚本,使用automake生成Makefile.in。
autoconf:生成configure 脚本
automake:生成Makefile.in
注意:
安装前查看INSTALL ,README
开源程序源代码的获取:
官方自建站点:
apache.org (ASF :Apache Software Foundation)
mariadb.org
...
代码托管:
SourceForge.net
Github.com
code.google.com
c/c++ 编译器:
gcc (GNU C Complier)
编译C源代码:
准备: 提供开发工具及开发环境
开发工具: make(项目编辑器), gcc等
开发环境: 开发库,头文件
glibc : 标准库
实现: 通过“包组”提供开发组件,Development Tools ,Server Platform Development
第一步:configure 脚本
选项:指定安装位置、指定启用的特性
--help: 获取其支持使用的选项
选项分类:
安装路径设定:
--prefix=/PATH: 指定默认安装位置, 默认为/usr/local/
--sysconfdir=/PATH :配置文件安装位置
System types: 支持交叉编译
Optional Features: 可选特性
--disable-FEATURE
--enable-FEATURE[=ARG]
Optional Packages: 可选包
--with-PACKAGE[=ARG], 依赖包
--without-PACKAGE, 禁用依赖关系
第二步:make(项目编辑器)
第三步:make install
安装后的配置:
(1) 二进制程序目录导入至PATH 环境变量中,编辑文件/etc/profile.d/NAME.sh,export PATH=/PATH/TO/BIN:$PATH
(2) 导入库文件路径(不用做)。
编辑/etc/ld.so.conf.d/NAME.conf,添加新的库文件所在目录至此文件中,让系统重新生成缓存:
ldconfig [-v]
(3) 导入头文件(不用做)
基于链接的方式实现:
ln -sv
(4) 导入帮助手册
编辑/etc/man.config|man_db.conf 文件
添加一个MANPATH
上一篇: 如何解决手机浏览器页面点击不跳转浏览器双击放大网页
下一篇: VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——BarcodeView控件的使用方式,.Net移动开发
推荐阅读
-
如何安装php-fpm模块?
-
OS X EI Capitan安装mcrypt
-
HP笔记本UEFI导致无法安装win7系统的解决方法
-
ant编译java报“非法字符: \65279 ”错误的解决方法 z
-
IIS环境下安装PHP5手记_PHP教程
-
安装ssl证书后报错Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.
-
在Centos 5.2下安装最新的MySQL Proxy
-
PHP网站安装程序制作的原理、步骤、注意事项和示例代码_PHP教程
-
Ansible安装
-
[JVM]JIT,JVM即时编译技术