Linux下源代码的编译安装入门

2018-03-30  本文已影响846人  陈征cuc

在项目中同学难免要在Linux系统下编译源代码,一定会对命令行编译时遇到层出不穷的编译错误头痛不及,很难理解为何Linux系统会用如此变态的编译安装方式呢?

特别对于现在习惯了应用商店一键安装的同学来说,编译源代码简直就是恐怖的令人发指。其实这一点这正是Linux的魅力所在,本文是编译入门,所以不展开说,但简单来讲就是:Windows系统以及手机应用商店是面向终端用户,所以安装程序必须简单。不能够给普通用户设门槛,对于商业世界,每个用户都是;而Linux是面向程序员,采用瑞士军刀的复用思维,一个开源程序模块写好了全世界用,但是想把用这些程序模块拼凑起来一起用可不容易。

既然是编译安装入门,其实网络上可参考的资料文档并不少,这里我们主要是串联起来一个学习思路,如何编译安装,如何理解编译过程,如何处理编译中遇到的问题。然后配合相关实验更好掌握。

一、如何编译安装

一般来说首先要下载安装包,后缀名是 .tar.gz 结尾的用 tar 命令解压出一个源代码目录,进入源代码目录之后执行下面命令就可以

./configure
make
make install

也可以写成这样更酷的单行方式 ./configure && make && make install

对应实验

二、如何理解编译过程

  1. 首先参考文章 https://my.oschina.net/surjur/blog/349464 了解: Linux编译安装中configure、make和make install各自的作用 。 会加上 ./configure --prefix=/your_dir 这样的参数,或是理解 --enable--xxx --disable-xxx,至少你折腾起来也容易管理。
  2. 然后再通过文章,了解 源代码编译、链接和Makefile简介 ,这时应该对Makefile和编译过程应该有相关概念了。
对应实验

三、如何解决安装中遇到的问题

Linux安装中遇到的问题可以说千奇百怪,有N个Linux发行版本,有M个要编译的软件版本,遇到的问题就能变成至少 M * N 个。为了解决这些复杂问题,大概的思路如下:

1. 收集安装记录文档

应当收集好自己机器的环境版本 uname -a, 以及安装记录文档(含命令);
留存安装记录文档至少有两个好处:

2. 从错误日志着手

3. configure 错误

configure 错误通常和库依赖有关系, 简单粗暴的方法解决不了,那您就只能来一般粗暴的方法了。

一般粗暴的方法解决不了,恭喜你,你是必须跳出 Linux 小白的境界啊。 configure 是用什么语言写的,需要研究一下bash 入门。打开 configure 文件,看看对应错误日志到底出现在哪一行。为什么过不去呢? 了解bash语法, echo 调试一下,有时就找到问题了。

安装完库之后,执行几个命令譬如 ldconfig等等也有作用,自行谷歌吧。

4. Make 错误

make错误通常和缺少库,或是对应库的目录设置有关。看看最后一条make命令。如果有了Makefile的基础,在研究下 gcc, g++等相关编译参数,把最后一条命令粘贴到命令行中,修订后执行一下,有时改变一下库指向就能执行编译通过了。

如果相关库或是命令修订后已经能正确编译执行的话, 这时你大概清楚错误的库指向发生何处,一般可以用下面几种方法解决

5. Make install

这步错误就少多了,有时是权限的问题 sudo make install 就好

对应实验
  1. 试试看编译个 nginx,加上几个模块,这是 internet 上使用最多的 http 服务器。
  2. 再挑战一下 vlc

6. 补充

上一篇 下一篇

猜你喜欢

热点阅读