Linux操作系统上编译程序的方法详细介绍

来源:Linux认证    发布时间:2012-11-10    Linux认证视频    评论

  每个人迟早都要下载程序的源码,然后试着编译它。如果你是RedHat或Debian的忠实追随者,你最终会发现一个程序不是太老就是太新,而去找已经编译过的二进制代码。坏的一方面是这些代码可能无论你怎么做,它们永远不能被正确的编译记住,大多数的Linux程序最多只是beta测试版。好的一方面是在过去的五年中编译没有问题的程序正在增加,而且即使你不是程序员,你也可以“修复”那些不能正确编译代码。

  下载以后,现在你的硬盘上应该有一个某种类型的压缩包。首先,你必须把它解压(uncompress),并把它解包(untar)到一个目录。在习惯上,很多人都把它们放到这个目录:/usr/src。这样能把所有的东西都放在一个地方,你以后可以清除它们。使用这个目录需要有root身份。如果一个用tar打包的文件是用gzip压缩的,则Linux的tar程序可以同时把它解压和解包。如果你的文件名叫做:filename.tar.gz,你可以到/usr/src目录,然后键入:

  tar -xzvf /{path to file}/{filename.tar.gz} [Enter]

  这将会把这个文件解压并解包。这里是几个参数简单的解释:x -把文件解包z -把文件解压v -显示处理过程f -后面跟着你要处理的打包文件名如果你用netscape下载的这个文件,可能会看到错误。有时netscape会为你解压这个文件。

  因此,如果你象上面这样untar它,你可能会看到这样的信息:

  gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error exit delayed from previous errors

  试着执行上面的命令,但把z参数删掉,就是这样:tar -xvf /{path to file}/{filename.tar.gz} [Enter] 除了gzip,有些文件是用bzip2来压缩的,因此这些文件看起来象这样the-program.tar.bz2。z参数对这种文件不起作用。解开这种文件最简单的方法就是bunzip2 the-program.tar.bz2。这样将把使用下面命令解包出来的the-program.tar文件解开:

  tar -xvf /{path to file}/{filename.tar.gz} [Enter]

  解包以后:cd到刚才解包时创建的那个目录里。用ls看看这个目录里的文件。首先你应该读读README和INSTALL文件。如果你没读这些文件,不要想从别人那里得到帮助。这是RTFM这个缩写在网上使用很广泛的原因(RTFM是`Read The Fucking Manual'的缩写。README和INSTALL文件将会告诉你如何编译和安装这个程序。

  要编译它,执行"make"命令。为了让"make"可以开始编译,必须有个叫Makefile的文件(你也可以通过在命令行上来写入make的参数,但那不在本文的讨论范围只内)有通常三个方法开始编译:simple,Imake和configure。

  Simple编译:如果你看到一个叫Makefile的文件——没有叫Imake或configure的文件,那么你就使用这个方法来编译。因为不能为你的计算机设置,所以用这种方法来编译有很多问题。通常README和INSTALL文件会告诉你如何编辑某些文件来使它可以正常编译。通常,你可以这样做:

  make [Enter] make install [Enter]

  如果一切正常,那么你现在就可以运行这个程序了。

  Imake: 如果ls这个目录看到有Imake文件,并且没有Makefile,那么你就使用这个方法。这是一个设置编译的比较老的方法。基本上你要键入:

  xmkmf [Enter] make [Enter] make install [Enter] Configure:

  如果这个目录中有个叫configure的文件,那就要用这个方法。这是编译程序最简单的方法,而且编译成功率很高。本质上,它会检查你的这个系统,来查看每一个可能的哭和支持文件来确保你可以编译这个程序,然后根据这些正确的信息来创建Makefile文件。如下执行:

  ./configure [Enter] make [Enter] make install [Enter]

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答