首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux——.configure && make && make install命令解析

当我们在Linux上安装相关的软件源码包时,一般会涉及到以下三个步骤,分别是 ..../configure、makemake install ———————————————————————————————————————————————————— 第一步 ....软件安装失败 如:它会检测是否安装了gcc (用于编译各种源代码的软件),如果未安装,该脚本会中止执行 当该脚本执行完成之后,它会根据之前检查的结果,生产一个 Makefile 文件,该文件规定了用什么编译器...、编译参数等信息 ,描述了文件编译的相互依赖关系 第二步 make 该步骤主要用来编译源代码,make指令会从 Makefile 文件中读取相关指令,然后进行编译,编译完成之后会生成可执行文件...第三步 make install 该步骤主要用来安装软件,make install命令会从 Makefile 文件中读取相关指令,然后将软件安装到指定位置 默认安装位置是 /usr/

7.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux下解决.configure ,makemake install的报错

    Linux下从源代码下编译安装一个软件有时候会报错,遇到一些麻烦。有些情况即使你用了很多方法去尝试解决,但问题依然存在,那怎么办呢?...本教程教你怎么解决Linux软件编译时遇到的问题 注意:编译安装一个软件不会被系统的包管理系统记录信息,这对于卸载和记录软件的行为都是不利的,建议您尽量使用打包好的包(.rpm .deb) 我们分3类错.../configure 错误 make 错误 make install 错误 识别这些错误应该是很简单的:....这个最快的解决办法就是安装g++(解决办法如上) 二: Make 错误 make错误通常很具体,并不能够写一个抽象的总结。.../configure make make install 使用gcc版本的方法如下: CC=”/usr/bin/gcc32″ .

    28.6K21

    linux下通过user-config.jam指定编译器编译boost

    bjam是boost的编译工具,类似于gnu make,boost就是用bjam编译的,bjam很聪明,在编译boost的时候,会自动从系统中寻找合适的编译器来完成boost编译。...但是如果系统中存在多个编译器的时候,就有点麻烦了,比如: 系统的默认编译器是/usr/bin/g++ ,另外我又装了个更高版本的编译器在/usr/local/bin/g++。...如果不想使用bjam自动找到的编译器来编译boost,就需要指定编译器bjam指定编译器是通过定义user-config.jam来实现的,只要定义一个user-config.jam文件,按指定的格式在文件中指定编译器...LIBRARY_PATH #export CPLUS_INCLUDE_PATH=$bzip2_path/include:$CPLUS_INCLUDE_PATH # 生成 user-config.jam 指定编译器...INSTALL_FOLDER popd 说明: 上面的脚本并不完整,脚本中中使用的exit_on_error,install_suffix,remove_if_exist等函数参见我的上一篇博客 《linux

    2.3K100

    Linuxmake和makefile及其拓展

    文章目录 make和makefile 基础知识 make/makefile的使用 伪目标 三个时间 推导规则 小程序进度条 缓冲区问题 倒计时程序 进度条 make和makefile 基础知识...makefile制定了一系列的规则来指定。 makefile带来的好处就是自动化编译,一旦写好这个文件,只需要一条make命令,整个工程就能自动完成编译,极大的提高了效率。...make是一个命令,makefile是一个文件 make/makefile的使用 系统本身并没有makefile,需要我们自己创建makefile文件(也可以叫Makefile)。...会失败,但是多次make clean却能一直成功?...cnt--; sleep(1); } return 0; } 进度条 采用分文件的方式来写: 不用在makefile文件中放process.h文件,因为编译器会自动到当前目录去查找

    3.8K00

    Linux 下的make命令与Makefile

    概述 博客内容包含linuxmake命令的使用与makefile的书写规则等,希望通过本文档使读者对make命令makefile文件有进一步了解,由于鄙人经验学识有限文档中会有描述不准确以及理解偏差,...fythons@sina.com 从一只猫说起hello kitty linux系统中的make命令与makefile文件 make与makefile 在linux系统中make是一个非常重要的编译命令...make命令隐藏了什么 linux 编译hello_kitty 只需要简单的make hello_kitty 上述过程可分解四部分,预处理(Propressing),编译(Compilation),...如下图所示: 预编译 预编译器cpp 将hello_kitty.c与stdio.h编译成.i 文件,c++的源代码文件扩展名为cpp或cxx,头文件扩展名为hpp,而与编译后的文件.ii。...因为make的“隐含规则”功能会自动我们自动去推导这两个目标的依赖目标和生成命令。make会在自己的“隐含规则”库中寻找可以用的规则,如果找到,那么就会使用。如果找不到,那么就会报错。

    10.2K20

    Rust 视界 | Rust 编译器提速

    理清头脑混沌,觉醒心智天地 Mozilla 工程师 Nicholas 总结了他自己迄今为止提升 Rust 编译器的编译速度而作的改进(Pull Request)。...然后 Alex Crichton (官方人员)告诉作者一些重要的事情:编译器总会为 crate 生成目标代码和 BitCode。...当前 Rust 和 LLD 的状态: Rust 以二进制文件发布了一个 lld 的副本,rust-lld,可以用于大多数平台 rust-lld 默认以 裸机(bare metal)目标 rust-lld...,虽然已经开始重写,但还太早期 在linux / unix平台上,不应直接调用ld / lld。...Windows-mingw似乎与linux / unix大致类似,除了可能会得到一个古老的GCC,而且事情有些古怪,因为伪Windows-Linux并不是经过严格测试的配置?

    1.4K10

    Linux编译器-gccg++

    今日更新了Linux编译器gcc、g++的内容 欢迎大家关注点赞收藏⭐️留言 编译器-gcc/g++ 我们直接用自带的gcc编译器会编译不了,因为当前版本太低了,有些语法不支持。...此时需要带个选项 -std=c99,让他支持c99标准就可以了,如下图: -o 选项后面接的是生成的目标文件的名字,即指定生成文件的名称。...选项“-o”是指目标文件,“.i”文件已经过预处理的C原始程序。 可以看到,预处理后的文件比原来的多出了几百行代码,主要是因为把库给展开了。...最后的答案是:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到 系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去...-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1缺省值,-O3优化级别最高 -w 不生成任何警告信息。 -Wall 生成所有警告信息。

    10810

    Linux编译器-gccg++

    前言 gcc/g++是Linux中的编译器,vim是Linux中的编辑器。要想将代码运行起来还需要编译才可实现。 本篇文章,主要通过预处理、编译、汇编、链接来介绍gcc/g++。...编译 在VS中,编译器会检查语法是否有错误,如果没有错误,才会编译成汇编语言。Linux下的gcc/g++也是一样。...最后的答案是:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去...其后缀名一般“.a” 动态库 动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。...-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1缺省值,-O3优化级别最高 -w 不生成任何警告信息。 -Wall 生成所有警告信息。

    16710

    LinuxLinux编译器-gccg++使用

    选项“-o”是指目标文件,“.i”文件已经过预处理的C原始程序 头文件展开,去注释,宏替换,条件编译 gcc -E test.c -o test.i -E:从现在开始,进行程序的翻译,当你将预处理做完...头文件的展开 此时生成test.i,我们用vim进入test.i,在利用底行模式vs test.c: 同时,在预处理阶段完成了宏替换、去注释以及条件编译: 条件编译的生效(宏的命令行定义) 可以向编译器传参来保证宏在命令行中定义...程序中,并没有定义“printf”的函数实现,且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现,统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时...其后缀名一般“.a 不受库升级或者被删除的影响,线程的可执行程序体积太大,网络、磁盘、内存占用过大 去掉前缀lib去掉后缀.so剩下的就是库名称 **对于上面的libc.so/6去掉后就剩下C,...**这个库的位置: Linux下默认形成可执行程序,默认使用的是动态库 /lib64/libc-2.17.so静态库 生成静态链接 生成可执行程序后面要加上-static 但是我们仔细看一下体积的差距太大了

    2.1K30
    领券