文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux系统make、make install、./confiigure怎么使用

2023-06-28 13:24

关注

这篇“Linux系统make、make install、./confiigure怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux系统make、make install、./confiigure怎么使用”文章吧。

简单点说:./configure主要用于检测安装平台目标特征。make是用来编译的,make install**是用来安装的。

Linux系统make、make install、./confiigure怎么使用

一、configure

这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:

 ./configure --prefix=/usr

上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。

当然在执行这个脚本的时候有非常多的可选岸数可以指定,我们可以通过允许 ./configure –help 察看详细的说明帮助。常见的一些参数如下,并不是每一个程序都相同哦,有的会有一些不一样的:

 (1)--prefix = PREFIX   把所有文件装在目录PREFIX下面.      (2)--exec-prefix = EXEC-PREFIX   你可以把体系相关的文件安装到一个不同的位置,   EXEC-PREFIX,而不是   PREFIX   设置的地方.这样做可以比较方便地在不同主机之间共享体系相关的文件.   如果你省略这些,那么   EXEC-PREFIX   就会被设置为等于   PREFIX   并且体系相关和体系无关的文件都会安装到同一棵目录树下,   这也可能是你想要的.          (3)--bindir=DIRECTORY   为可执行程序声明目录,缺省是 EXEC-PREFIX/bin,通常也就是 /usr/local/pgsql/bin.          (4)--datadir=DIRECTORY   设置所安装的程序需要的只读文件的目录.缺省是   PREFIX/share.   请注意这个目录和你放数据库文件的地方没有任何关系.          (5)--sysconfdir=DIRECTORY   用于各种各样配置文件的目录,缺省为   PREFIX/etc.          (6)--libdir=DIRECTORY   库文件和动态装载模块  的目录.缺省是   EXEC-PREFIX/lib.          (7)--includedir=DIRECTORY     C和C++   头文件的目录.缺省是   PREFIX/include.          (8)--docdir=DIRECTORY   文档文件,(除   “man(手册页)”以外,   将被安装到这个目录.缺省是   PREFIX/doc.          (9)--mandir=DIRECTORY   随着   PostgreSQL   一起带的手册页   将安装到这个目录.在它们相应的   manx子目录里.   缺省是   PREFIX/man.

二、make

这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。

make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。一般情况下,他所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成。

如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。

make 的作用是开始进行源代码编译,以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装,make uninstall 是卸载,不加参数就是默认的进行源代码编译。

三、make install

这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)


一些常见的问题:

(1)Linux CC与Linux GCC的区别概括介绍:

从名字上看,老的unix系统的CC程序叫做C Compiler,它是一个古老的Unix上专门用于编译C语言的编译器。但GCC这个名字按GNU的说法叫做Gnu Compiler Collection。因为gcc包含很多编译器(C, C++, Objective-C, Ada, Fortran,and   Java)。所以它们是不一样的,一个是一个古老的C编译器,一个是编译器的GNU的编译器的集合(Gcc里的C编译器比CC强大太多了,所以你没必要用CC)。当你调用gcc时不一定是调用的C/C++编译器,是gcc根据文件扩展名自动识别并调用对应的编译器,具体可查阅$man gcc。

你是下载不到CC的,原因是:CC来自于昂贵的Unix系统,CC是商业软件,要想用你需要打电话,写订单,而不是打开你的Browser去download。

linux下的cc是gcc的符号链接,可以通过$ls –l /usr/bin/cc来简单察看。而编译时看到的控制台输出CC则是一个指向gcc的变量,该变量是make程序的内建变量,就算你在Makefile中没有CC= ,该变量也会存在,并默认指向gcc。cc的符号链接和变量存在的意义在于源码的移植性,可以方便的用GCC来编译老的用cc编译的unix软件,甚至连Makefile都不要改。而且也便于linux程序在unix下编译。

近几年的一个新情况是越来越多的unix用户,据我所知像solaris,bsd用户也不太使用CC了,人们都一定要装一个gcc,用它来编译C/C++程序。原因显而易见,gcc足够强大,健壮。支持估计目前为止只有它支持的ISO c/c++ 新特性。当然你最好不要使用night版本的gcc。

(2)关于make install的解释

make 和 make install 中的mark是系统自带的命令还是可执行程序文件?make install中,是不是可以认为 install是mark的参数???

注意:install 不是make的参数,而是在makefile(Makefile)中有如:install:的语句。如果用make install,那么就执行install:后面的语句。

以上就是关于“Linux系统make、make install、./confiigure怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯