"编译"两个字让人感觉高深莫测, 实际上, 把"代码"转变成计算机可以执行的"二进制文件", 就叫做"编译/compile". 先编译这个, 还是先编译那个(即编译的顺序安排),叫做"构建/build". 其中, "make"是最常用的构建工具.
编译软件的通用步骤
编译软件有 3 个步骤:
- 下载并解压源代码;
- 配置编译选项, 比如指定软件的安装路径
.configure --prefix=/安装/路径
,(通过./configure --help
可以查看其它安装选项, 至于如何取舍这些选项, 就得上网搜索前人的经验了); -
make && make test && sudo make install
:-
make
表示将源代码编译生成二进制文件. 如果在 make 过程中出现 error, 需要记下错误, 上网搜索别人的解决方案(提醒一下: error 并不只出现在最后一行); -
make test
是对上一步的make
生成的二进制文件进行检查, 测试在你的环境下能否正确执行这些二进制文件; -
sudo make install
表示把之前生成的二进制文件复制到--prefix
指定的安装路径中. 因为要向系统写入文件, 所以需要sudo
获取 root 权限.
-
以 Memcached 为例
计划将源码下载到 /usr/local/src, 将软件安装到 /usr/local/memcached.
- 1.下载解压
cd /usr/local/src #一般把源码放在这个目录
wget http://memcached.org/files/memcached-1.4.39.tar.gz #下载源码
tar -zxvf memcached-1.4.39.tar.gz #解压缩
- 2.配置参数
cd memcached-1.4.39
.configure --prefix=/usr/local/memcached # 配置
- 3.编译
make && make test && sudo make install
验证 Memcached 是否正确安装:
/usr/local/memcached/bin/memcached -m 64 -p 11211 -u nobody -vv
我的另外一篇文章, 记录了在 CentOS 编译安装 PHP 的 Memcached 插件的过程, 参见编译安装 PHP 的 Memcached 扩展
参考文章
- 简书 - Linux 编译 常用PHP 扩展
- Linux下 config/configure/Configure、make 、make test/make check、sudo make install 的作用
- 阮一峰 - Make 命令教程
文章历史
- 2017/07/9 (第一次发布)
- 2017/07/10 添加注释; 引用另一篇文章 -- 编译安装 PHP 的 Memcached 扩展
如果我的文章对你有用, 希望给些改进的建议, 或者打个"喜欢" _