⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 software-building-3.html

📁 Linux初学者最好的老师就是howto了。相当于函数man。
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
 <TITLE>在 Linux 下建立软体套件: 使用 Make</TITLE>
 <LINK HREF="Software-Building-4.html" REL=next>
 <LINK HREF="Software-Building-2.html" REL=previous>
 <LINK HREF="Software-Building.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="Software-Building-4.html">Next</A>
<A HREF="Software-Building-2.html">Previous</A>
<A HREF="Software-Building.html#toc3">Contents</A>
<HR>
<H2><A NAME="s3">3. 使用 Make</A></H2>

<P><CODE>Makefile</CODE> 是建立过程的重点. 在它的最简单的形式, Makefile 
就是个 script ,它是用来编译或建立"二元码",套件的可执行部分.
Makefile也可以提供软体套件升级的工具,而不需要重新编译每一个在套件中的原始档案,
但其有不同的情况(或是不同的约定).
<P>某些特点是, Makefile 开启 <CODE>cc</CODE> 或 <CODE>gcc</CODE>.
这实际上是个前处理器, C (or C++) 编译器, 和 连结器, 按照那个顺序.
这过程转换原始码(source)为可真正去执行的二元码(binaries).
<P>下指令 <EM>make</EM> 通常只要键入 <B>make</B>.
这通常建立讨论中的套件所有需要的可执行档.
然而, <EM>make</EM> 也做其他工作,像是安装档案至合适的目录 (<B>make install</B>)
而且删除旧的 object 档案 (<B>make clean</B>). 
执行 <B>make -n</B> 允许预览建立过程, 就是列出所有 make 
所唤起的(triggered)所有命令, 但没有真的去执行它们.
<P>只有在最简单的软体使用一般性的 Makefile. 较复杂的安装需要根据函式库(libraries),
include 档案以及你个别机器资源所在目录来量身定制.
这特别是当需要 <CODE>X11</CODE> libraries 来安装建立时.
<EM>Imake</EM> 和 <EM>xmkmf</EM> 可完成这样的工作.
<P>引用自 man page,Imakefile 是个"模板(template)"的 Makefile.
imake 工具参考 Imakefile 根据你的系统造出合适的 Makefile.
然而,几乎在所有的情况下,你要执行 xmkmf, 它是要下 imake 指令用的 shell script,
也就是个前端介面(front end). 察阅一下内附在软体档案间的 README 或 INSTALL 
档案以取得特别的指示. 至於更详细的步骤分析,请阅读 imake 和 xmkmf 的 man pages.
<P>要知道的是 <EM>xmkmf</EM> 和 <EM>make</EM> 可能需要以 root 身分来下指令,
特别是当 <B>make install</B> 来搬移二元码到 <CODE>/usr/bin</CODE> 
或 <CODE>/usr/local/bin</CODE> 目录. 以一般使用者的身分而不具 root 权力
来使用 make 将可能会导致 <CODE>write access denied</CODE> 的错误讯息,
因为你缺少写入(write)至系统目录的权限. 也检查一下,
所造出来的二元码对你与任何其他适用的使用者有适合的执行(execute)权限.
<P>下指令 <B>xmkmf</B> 来使用 <EM>Imake</EM> 档案, 
建立一个新的而且适合你系统的 Makefile. 正常地下指令 <B>xmkmf</B> 都会附加
<B>-a</B> 引数, 因而自动地做 <EM>make Makefiles, make includes,</EM>
和 <EM>make depend</EM> 的动作. 这会设定变数(variables)和给定函式库(library)
位置给编译器和连结器. 有时会没有 <EM>Imake</EM> 档案, 引而代之的是有
<EM>INSTALL</EM> 和 <EM>configure</EM> 的 script, 也会到这样的目的. 
注意的是如果你要执行  <EM>configure</EM>, 那要下指令 <B>./configure</B>
以确保在目前目录下正确的 script <EM>configure</EM> 是被呼叫.
在大部分的情况, 在发行套件中的 <EM>README</EM> 档案会说明安装步骤.
<P>通常一个好的方法是从外观检视一下 <CODE>Makefile</CODE> 是 <CODE>xmkmf</CODE> 或
其中一个安装的 scripts 所造出来的.  Makefile 正常下会为你的系统而修正,
但你偶而可能需要"旋扭(tweak)"或手动地修正错误.
<P>
<P>你的一般安装步骤将会是:
<UL>
<LI>读一下 <EM>README</EM> 档案和其它合用的文件.</LI>
<LI>执行 <B>xmkmf -a</B>, 还是 <EM>INSTALL</EM> 或 <EM>configure</EM> 
script.</LI>
<LI>检查一下 <CODE>Makefile</CODE>.</LI>
<LI>如果需要, 执行一下 <B>make clean</B>, <B>make Makefiles</B>,  
<B>make includes</B>, and <B>make depend</B>.</LI>
<LI>执行 <B>make</B>.</LI>
<LI>检查一下权限.</LI>
<LI>如果需要, 执行一下 <B>make install</B>.</LI>
</UL>
<P>
<P>
<HR>
<A HREF="Software-Building-4.html">Next</A>
<A HREF="Software-Building-2.html">Previous</A>
<A HREF="Software-Building.html#toc3">Contents</A>
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -