详解Linux安装GCC方法
Linux超详细gcc升级全过程
Linux超详细gcc升级全过程⽬录前⾔1.当前gcc版本2.安装gcc3.gmp安装4.MPFR编译5.MPC编译6.GCC 配置7.GCC版本更新前⾔c c++ 等等需要这个编译器gcc,最近有DBA的朋友咨询RHEL7.6操作系统安装Mysql数据库时需要⾼版本的GCC,研究了下发现坑不少,总结本⽂分享给⼤家1.当前gcc版本[root@rhel76 ~]# gcc -vUsing built-in specs.COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapperTarget: x86_64-redhat-linuxConfigured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_at Thread model: posixgcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)从以上可以看出当前版本为4.8.5,本次我们升级到10.1.02.安装gcc--下载地址:https:///gnu/gcc/gcc-10.1.0/[root@rhel76 ~]# tar -vxf gcc-10.1.0.tar.gz[root@rhel76 gcc-10.1.0]# mkdir build[root@rhel76 gcc-10.1.0]# cd build/[root@rhel76 build]# ../configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilibchecking build system type... x86_64-pc-linux-gnuchecking host system type... x86_64-pc-linux-gnuchecking target system type... x86_64-pc-linux-gnuchecking for a BSD-compatible install... /usr/bin/install -cchecking whether ln works... yeschecking whether ln -s works... yeschecking for a sed that does not truncate output... /usr/bin/sedchecking for gawk... gawkchecking for libatomic support... yeschecking for libitm support... yeschecking for libsanitizer support... yeschecking for libvtv support... yeschecking for libhsail-rt support... yeschecking for libphobos support... yeschecking for gcc... gccchecking whether the C compiler works... yeschecking for C compiler default output file name... a.outchecking for suffix of executables...checking whether we are cross compiling... nochecking for suffix of object files... ochecking whether we are using the GNU C compiler... yeschecking whether gcc accepts -g... yeschecking for gcc option to accept ISO C89... none neededchecking for g++... g++checking whether we are using the GNU C++ compiler... yeschecking whether g++ accepts -g... yeschecking whether g++ accepts -static-libstdc++ -static-libgcc... nochecking for gnatbind... nochecking for gnatmake... nochecking whether compiler driver understands Ada... nochecking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2checking for objdir... .libschecking for the correct version of gmp.h... noconfigure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+.Try the --with-gmp, --with-mpfr and/or --with-mpc options to specifytheir locations. Source code for these libraries can be found attheir respective hosting sites as well as athttps:///pub/gcc/infrastructure/. See also/install/prerequisites.html for additional info. Ifyou obtained GMP, MPFR and/or MPC from a vendor distribution package,make sure that you have installed both the libraries and the headerfiles. They may be located in separate packages.从⽇志总可以看出有如下报错,故下⾯每个都安装configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+.3.gmp安装[root@jeames007 ~]# tar -vxf gmp-5.0.1.tar.bz2[root@jeames007 ~]# cd gmp-5.0.1/[root@jeames007 gmp-5.0.1]# ./configure --prefix=/usr/local/gmp-5.0.1[root@jeames007 gmp-5.0.1]# make[root@jeames007 gmp-5.0.1]# make installmake[4]: Leaving directory `/root/gmp-5.0.1'make[3]: Leaving directory `/root/gmp-5.0.1'make[2]: Leaving directory `/root/gmp-5.0.1'make[1]: Leaving directory `/root/gmp-5.0.1'4.MPFR编译[root@jeames007 ~]# tar -vxf mpfr-3.1.5.tar.xz[root@jeames007 ~]# cd mpfr-3.1.5/[root@jeames007 ~]#./configure --prefix=/usr/local/mpfr-3.1.5 --with-gmp=/usr/local/gmp-5.0.1[root@jeames007 mpfr-3.1.5]# make[root@jeames007 mpfr-3.1.5]# make install5.MPC编译[root@jeames007 ~]# tar -vxf mpc-1.0.1.tar.gz[root@jeames007 ~]# cd mpc-1.0.1[root@jeames007 ~]# ./configure --prefix=/usr/local/mpc-1.0.1 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5[root@jeames007 mpc-1.0.1]# make[root@jeames007 mpc-1.0.1]# make install6.GCC 配置[root@rhel76 ~]# cd gcc-10.1.0[root@rhel76 gcc-10.1.0]# cd build/../configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.1 checking build system type... x86_64-pc-linux-gnuchecking host system type... x86_64-pc-linux-gnuchecking target system type... x86_64-pc-linux-gnuchecking for a BSD-compatible install... /usr/bin/install -cchecking whether ln works... yeschecking whether ln -s works... yeschecking for a sed that does not truncate output... /usr/bin/sedchecking for gawk... gawkchecking for libatomic support... yeschecking for libitm support... yeschecking for libsanitizer support... yeschecking for libvtv support... yeschecking for libhsail-rt support... yeschecking for libphobos support... yeschecking for gcc... gccchecking whether the C compiler works... yeschecking for C compiler default output file name... a.outchecking for suffix of executables...checking whether we are cross compiling... nochecking for suffix of object files... ochecking whether we are using the GNU C compiler... yeschecking whether gcc accepts -g... yeschecking for gcc option to accept ISO C89... none neededchecking for g++... g++checking whether we are using the GNU C++ compiler... yeschecking whether g++ accepts -g... yeschecking whether g++ accepts -static-libstdc++ -static-libgcc... nochecking for gnatbind... nochecking for gnatmake... nochecking whether compiler driver understands Ada... nochecking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2checking for objdir... .libschecking for the correct version of gmp.h... yeschecking for the correct version of mpfr.h... buggy but acceptablechecking for the correct version of mpc.h... yeschecking for the correct version of the gmp/mpfr/mpc libraries... yeschecking for isl 0.15 or later... norequired isl version is 0.15 or later*** This configuration is not supported in the following subdirectories:gnattools gotools target-libada target-libhsail-rt target-libphobos target-zlib target-libbacktrace target-libgfortran target-libgo target-libffi target-libobjc target-liboffloadmic(Any other directories should still work fine.)checking for default BUILD_CONFIG... bootstrap-debugchecking for --enable-vtable-verify... nochecking for bison... bison -ychecking for bison... bisonchecking for gm4... nochecking for gnum4... nochecking for m4... m4checking for flex... flexchecking for flex... flexchecking for makeinfo... no/root/gcc-10.1.0/missing: line 81: makeinfo: command not foundchecking for expect... nochecking for runtest... nochecking for ar... archecking for as... aschecking for dlltool... nochecking for ld... ldchecking for lipo... nochecking for nm... nmchecking for ranlib... ranlibchecking for strip... stripchecking for windres... nochecking for windmc... nochecking for objcopy... objcopychecking for objdump... objdumpchecking for otool... nochecking for readelf... readelfchecking for cc... ccchecking for c++... c++checking for gcc... gccchecking for gfortran... gfortranchecking for gccgo... nochecking for gdc... nochecking for ar... nochecking for ar... archecking for as... nochecking for as... aschecking for dlltool... nochecking for dlltool... nochecking for ld... nochecking for ld... ldchecking for lipo... nochecking for lipo... nochecking for nm... nochecking for nm... nmchecking for objcopy... nochecking for objcopy... objcopychecking for objdump... nochecking for objdump... objdumpchecking for otool... nochecking for otool... nochecking for ranlib... nochecking for ranlib... ranlibchecking for readelf... nochecking for readelf... readelfchecking for strip... nochecking for strip... stripchecking for windres... nochecking for windres... nochecking for windmc... nochecking for windmc... nochecking where to find the target ar... host toolchecking where to find the target as... host toolchecking where to find the target cc... just compiledchecking where to find the target c++... just compiledchecking where to find the target c++ for libstdc++... just compiledchecking where to find the target dlltool... host toolchecking where to find the target gcc... just compiledchecking where to find the target gfortran... host toolchecking where to find the target gccgo... host toolchecking where to find the target gdc... host toolchecking where to find the target ld... host toolchecking where to find the target lipo... host toolchecking where to find the target nm... host toolchecking where to find the target objcopy... host toolchecking where to find the target objdump... host toolchecking where to find the target otool... host toolchecking where to find the target ranlib... host toolchecking where to find the target readelf... host toolchecking where to find the target strip... host toolchecking where to find the target windres... host toolchecking where to find the target windmc... host toolchecking whether to enable maintainer-specific portions of Makefiles... noconfigure: creating ./config.statusconfig.status: creating Makefile[root@jeames007 ~]# make -j4make 时间很长,很长,耐⼼等待,本⼈编译了1个⼩时。
Linux教程菜鸟教程2024新版
进程控制
使用kill、pkill、killall等命令终止进程,使用 nohup、disown等命令使进程在后台运行。
3进程Βιβλιοθήκη 控使用systemd、supervisor等工具监控进程状态 ,实现进程自动重启、日志收集等功能。
系统资源监控与性能优化
05
数据存储与安全防护
磁盘分区与格式化操作指南
磁盘分区概念及作用
解释磁盘分区的含义,阐述分区对于数据管理和系统性能的重要性。
常见分区工具介绍
介绍在Linux系统中常用的分区工具,如fdisk、parted等,并说明各 自的特点和使用方法。
分区操作步骤详解
详细讲解使用分区工具进行磁盘分区的操作步骤,包括创建、删除、 调整分区大小等。
端口号
用于标识设备上运行的不同服务,常见端口号如80(HTTP)、22(SSH)等。
路由器与交换机
网络设备,用于实现不同网络之间的通信和数据传输。
TCP/IP协议栈
网络通信的基础协议,包括传输层的TCP和UDP协议、网络层的IP协议等。
网络配置工具及命令
ifconfig
用于配置和显示Linux内核中网络接 口的网络参数。
BIND(Berkeley Internet Name Domain): 一种常用的DNS服务器软件,用于配置和管理 DNS服务。
DHCP(Dynamic Host Configuration Protocol):动态主机配置协议,用于自动给网 络上的计算机分配IP地址和其他网络参数。
dhcpd:一种常用的DHCP服务器软件,用于配 置和管理DHCP服务,自动分配IP地址等网络参数 给客户端。
linuxmake命令安装详解
linuxmake命令安装详解linux make命令安装详解对于GNU Make或许很多Windows开发的程序员并不是很了解,因为Windows中的很多集成开发环境(IDE)都帮我们做了这件事。
但是作为⼀个专业从事Linux嵌⼊式开发的程序员就必须要了解GNU Make,会不会使⽤GNU Make从⼀定⾓度上反应了⼀个⼈是否具备⼤型⼯程能⼒。
⼀、什么是GNU MakeGNU Make是⼀个控制从程序的源⽂件中⽣成程序的可执⾏⽂件和其他⾮源⽂件的⼯具。
Make可以从⼀个名为Makefile的⽂件中获得如何构建程序的知识,该⽂件列出了每个⾮源⽂件以及如何从其他⽂件计算它。
当你编写⼀个程序时,你应该为它编写⼀个Makefile⽂件,这样就可以使⽤Make来编译和安装这个程序。
⼆、如何获取MakeMake可以在GNU的主要FTP服务器上找到:http : (通过HTTP)和 (通过FTP)。
它也可以在GNU镜像列表上找到; 请尽可能GNU的镜像列表。
三、为什么需要Make任何⼀种技能或知识都是源之于某种社会需求,那为什么要⽤Make呢?当项⽬源⽂件很少的时候,我们也许还可以⼿动使⽤gcc命令来进⾏编译,但是当项⽬发展到⼀个庞⼤的规模时,再⼿动敲gcc命令去编译就变得不可能的事情。
所以呢,在这样的历史背景下,就出现了⼀位⼤⽜(斯图亚特·费尔德曼),在1977年贝尔实验室制作了这样⼀个软件,它的名字就叫做Make。
所以实际开发中,我们在编译⼤型项⽬的时候往往会使⽤Make进⾏编译,为此我们还需要了解Make软件所依赖的Makefile规则⽂件。
四、MakefileMakefile ⽂件需要按照某种语法进⾏编写,⽂件中需要说明如何编译各个源⽂件并连接⽣成可执⾏⽂件,并要求定义源⽂件之间的依赖关系。
Makefile的语法还是略微有些复杂,因篇幅有限,本⽂只能简述Makefile的编写原则。
(1)Makefile的组成部分Makefile包含五个东西:显⽰规则,隐式规则,变量定义,⽂件指⽰,注释。
cmake工程的linux编译命令_概述及解释说明
cmake工程的linux编译命令概述及解释说明引言部分是文章的开篇,通常会包括概述、文章结构和目的三个方面。
在这篇关于cmake工程的Linux编译命令文章中,引言部分需要首先简要介绍cmake 在Linux编译中的作用,并说明本文将通过各个章节对cmake工程进行详细解析和指导。
接着,描述文章的结构安排,包括大纲中各个章节内容的概述和重点。
最后,明确阐述写作本文的目的和意义,可能包括提高读者对cmake工程编译命令的理解和应用能力,为Linux开发者提供实用指导等。
整体来说,引言部分要能够清晰明了地表达出本文所要讨论内容的重点和意义。
2. cmake工程概述:2.1 什么是cmake工程cmake工程是指使用CMake构建系统管理的项目。
CMake是一个跨平台的构建系统生成工具,可以自动生成用于多种编译环境(如Unix Makefiles、Visual Studio等)的构建文件,使得项目能够轻松在不同平台上进行编译和构建。
通过定义项目结构和依赖关系,CMake可以帮助开发人员更方便地配置和生成可执行文件或库。
2.2 cmake与makefile的关系CMake与传统的makefile相比具有更高的抽象层次和更强大的功能性。
传统makefile语法相对复杂,而且在不同平台上可能存在兼容性问题。
而CMake提供了简单易用的语法和命令,能够自动生成适用于各种编译器和操作系统的makefile文件。
开发人员只需编写简单的CMakeLists.txt文件来描述项目结构和依赖关系,就可以快速生成适用于目标平台的构建文件。
2.3 cmake在Linux编译中的作用在Linux系统中,使用cmake可以更加方便地管理复杂项目的编译过程。
通过定义项目源码目录、包含文件路径、库文件路径等信息,并指定需要使用的编译器及其参数,在执行cmake命令后即可自动生成相应平台下所需的makefile 或IDE工程文件,然后使用make或其他对应工具进行编译链接即可得到目标执行文件或库。
arm-linux-gcc下载与安装
下载glibc-linuxthreads
wget /gnu/glibc/glibc-linuxthreads-2.13.tar.gz
解压
tar -zxvf glibc-2.13.tar.gz
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
方法一,参照这篇文章的做法/view/ba4f4e222f60ddccda38a01a.html
直接下载较高版本的库libstdc++.so.6.0.10,网址/source/1670346
先删除libstdc++.so.6
[root@localhost ~]# rm /usr/lib/libstdc++.so.6
rm:是否删除 符号链接 “/usr/lib/libstdc++.so.6”? y
[root@localhost ~]#
然后将下载的libstdc++.so.6.0.10复制到/usr/lib/目录下面
打开设置文件
[root@localhost opt]# vi /etc/profile
在打开的文件的
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
linuxgcc命令及用法
linuxgcc命令及用法Linux的gcc命令是一款非常强大的编译器,用于将源代码转换为可执行文件。
本文将详细介绍gcc命令及其常用的用法,帮助读者更好地理解和使用这款工具。
一、gcc命令的基本语法结构gcc是GNU Compiler Collection(GNU编译器集合)的简称,因此其命令基本语法结构一般为:shellgcc [选项] [输入文件]其中,选项用于指定编译时的相关参数,输入文件则是需要编译的源文件。
二、gcc命令的常用选项gcc命令提供了许多选项,用于控制编译过程及生成的可执行文件的属性。
下面是一些常用的gcc选项及其作用:1. -o:用于指定输出文件的名称。
例如,使用`-o myprogram`选项将输出文件命名为myprogram。
2. -c:仅进行编译,不进行链接操作。
这个选项常用于编译多个源文件时,先将每个源文件编译为目标文件,再进行链接操作。
3. -g:生成调试信息。
这个选项会在编译时生成与调试器兼容的调试信息,方便开发人员进行程序调试。
4. -Wall:显示所有警告信息。
使用这个选项可以使编译器在编译时输出更多的警告信息,帮助开发人员提前发现潜在的问题。
5. -I:指定头文件的搜索路径。
使用这个选项可以告诉编译器在指定的路径中查找头文件,方便引用外部库、模块等。
6. -L:指定库文件的搜索路径。
与-I选项类似,这个选项用于告诉编译器在指定的路径中查找库文件,用于链接时的库文件搜索。
7. -l:指定要链接的库文件。
使用这个选项可以显式地告诉编译器要链接的库文件,如:-lmath将链接math库文件。
三、gcc命令的应用实例下面通过几个实例来演示gcc命令的具体用法,以帮助读者更好地理解和掌握这款工具。
1. 编译单个源文件并生成可执行文件假设我们有一个名为`hello.c`的源文件,内容如下:c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}我们可以使用以下命令将其编译为可执行文件`hello`:shellgcc -o hello hello.c编译成功后,即可在当前目录下生成名为`hello`的可执行文件。
gcc安装教程
详解Linux安装GCC方法下载:/gnu/gcc/gcc-4.5.1/gcc-4.5.1.tar.bz2浏览:/gnu/gcc/gcc-4.5.1/查看Changes:/gcc-4.5/changes.htm现在很多程序员都应用GCC,怎样才能更好的应用GCC。
目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。
本文以在Redhat Linux安装GCC4.1.2为例(因在项目开发过程中要求使用,没有用最新的GCC 版本),介绍Linux安装GCC过程。
安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。
如果系统上没有编译器,不能安装源代码形式的GCC 4.1.2。
如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。
本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。
系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的。
与此不同,现在GCC建议我们将一个版本的GCC安装在一个单独的目录下。
这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常。
在本文中采用这个方案安装GCC 4.1.2,并且在安装完成后,仍然能够使用原来低版本的GCC编译器,即一个系统上可以同时存在并使用多个版本的GCC编译器。
按照本文提供的步骤和设置选项,即使以前没有安装过GCC,也可以在系统上安装上一个可工作的新版本的GCC编译器。
1 下载在GCC网站上()或者通过网上搜索可以查找到下载资源。
目前GCC的最新版本为4.2.1。
可供下载的文件一般有两种形式:gcc-4.1.2.tar.gz和gcc-4.1.2.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。
linux中gcc命令的详细解释
linux中gcc命令的详细解释linxu下的gcc命令其实是GNU C Compiler的缩写,下面由店铺为大家整理了linux的gcc命令的详细解释的相关知识,希望对大家有帮助!一、linux中的gcc命令的详细解释gcc命令gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。
现在很多程序员都应用GCC,怎样才能更好的应用GCC。
目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。
语法gcc(选项)(参数)选项-o:指定生成的输出文件;-E:仅执行编译预处理;-S:将C代码转换为汇编代码;-wall:显示警告信息;-c:仅执行编译操作,不进行连接操作。
参数C源文件:指定C语言源代码文件。
二、linux中的gcc命令的详解实例常用编译命令选项假设源程序文件名为test.c无选项编译链接gcc test.c将test.c预处理、汇编、编译并链接形成可执行文件。
这里未指定输出文件,默认输出为a.out。
选项 -ogcc test.c -o test将test.c预处理、汇编、编译并链接形成可执行文件test。
-o选项用来指定输出文件的文件名。
选项 -Egcc -E test.c -o test.i将test.c预处理输出test.i文件。
选项 -Sgcc -S test.i 将预处理输出文件test.i汇编成test.s文件。
选项-c gcc -c test.s将汇编输出文件test.s编译输出test.o文件。
无选项链接gcc test.o -o test将编译输出文件test.o链接成最终可执行文件test。
选项 -Ogcc -O1 test.c -o test使用编译优化级别1编译程序。
级别为1~3,级别越大优化效果越好,但编译时间越长。
多源文件的编译方法如果有多个源文件,基本上有两种编译方法:假设有两个源文件为test.c和testfun.c多个文件一起编译gcc testfun.c test.c -o test将testfun.c和test.c分别编译后链接成test可执行文件。
详解linux安装软件的几种方法
详解linux安装软件的⼏种⽅法⼀、rpm包安装⽅式步骤:1、找到相应的软件包,⽐如soft.version.rpm,下载到本机某个⽬录;2、打开⼀个终端,su -成root⽤户;3、cd soft.version.rpm所在的⽬录;4、输⼊rpm -ivh soft.version.rpm详细介绍:1. 安装:我只需简单的⼀句话,就可以说完。
执⾏:rpm –ivh rpm的软件包名更⾼级的,请见下表:rpm参数参数说明-i 安装软件-t 测试安装,不是真的安装-p 显⽰安装进度-f 忽略任何错误-U 升级安装-v 检测套件是否正确安装这些参数可以同时采⽤。
更多的内容可以参考RPM的命令帮助。
2. 卸载:我同样只需简单的⼀句话,就可以说完。
执⾏:rpm –e 软件名不过要注意的是,后⾯使⽤的是软件名,⽽不是软件包名。
例如,要安装software-1.2.3-1.i386.rpm这个包时,应执⾏:rpm –ivh software-1.2.3-1.i386.rpm⽽当卸载时,则应执⾏:rpm –e software。
另外,在Linux中还提供了象GnoRPM、kpackage等图形化的RPM⼯具,使得整个过程会更加简单。
⼆、deb包安装⽅式步骤:1. 1、找到相应的软件包,⽐如soft.version.deb,下载到本机某个⽬录;2. 2、打开⼀个终端,su -成root⽤户;3. 3、cd soft.version.deb所在的⽬录;4. 4、输⼊dpkg -i soft.version.deb详细介绍:这是Debian Linux提供的⼀个包管理器,它与RPM⼗分类似。
但由于RPM出现得更早,所以在各种版本的Linux都常见到。
⽽debian的包管理器dpkg则只出现在Debina Linux中,其它Linux版本⼀般都没有。
1. 安装dpkg –i deb的软件包名如:dpkg –i software-1.2.3-1.deb2. 卸载dpkg –e 软件名如:dpkg –e software3.查询:查询当前系统安装的软件包:dpkg –l ‘*软件包名*'如:dpkg –l '*software*'三、tar.gz源代码包安装⽅式:1. 1、找到相应的软件包,⽐如soft.tar.gz,下载到本机某个⽬录;2. 2、打开⼀个终端,su -成root⽤户;3. 3、cd soft.tar.gz所在的⽬录;4. 4、tar -xzvf soft.tar.gz //⼀般会⽣成⼀个soft⽬录5. 5、cd soft6. 6、./configure7. 7、make8. 8、make install详细介绍:1. 安装:整个安装过程可以分为以下⼏步:1. 1)取得应⽤软件:通过下载、购买光盘的⽅法获得;2. 2)解压缩⽂件:⼀般tar包,都会再做⼀次压缩,如gzip、bz2等,所以你需要先解压。
在Linux系统中安装ntfs3g识别NTFS移动硬盘操作步骤
| 7.7 kB
00:00
| 3.6 kB | 3.0 kB | 3.0 kB | 3.5 kB | 3.0 kB | 4.7 kB | 2.9 kB | 2.6 kB | 2.6 kB | 2.6 kB | 2.9 kB
00:00 00:00 00:00 00:00 00:00 00:00 00:00 00:00 00:00 00:00 00:00
ntfs-3g_ntfsprogs-2017.3.23/src/ ntfs-3g_ntfsprogs-2017.3.23/src/Makefile.in ntfs-3g_ntfsprogs-2017.3.23/src/ntfs-3g_common.h ntfs-3g_ntfsprogs-2017.3.23/src/ntfs-3g_common.c ntfs-3g_ntfsprogs-2017.3.23/src/ntfs-3g.probe.c ntfs-3g_ntfsprogs-2017.3.23/src/ntfs-3g.probe.8.in ntfs-3g_ntfsprogs-2017.3.23/src/ntfs-3g.c ntfs-3g_ntfsprogs-2017.3.23/src/ntfs-3g.8.in ntfs-3g_ntfsprogs-2017.3.23/src/lowntfs-3g.c ntfs-3g_ntfsprogs-2017.3.23/src/Makefile.am ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/Makefile.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/utils.h ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/utils.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/sd.h ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/sd.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/playlog.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfswipe.h ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfswipe.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfswipe.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsusermap.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsusermap.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsundelete.h ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsundelete.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsundelete.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfstruncate.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfstruncate.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfssecaudit.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfssecaudit.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsresize.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsresize.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsrecover.h ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsrecover.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsrecover.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsprogs.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsmove.h ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsmove.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsmftalloc.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsls.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsls.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfslabel.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfslabel.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsinfo.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsinfo.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsfix.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsfix.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsfallocate.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsfallocate.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsdump_logfile.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsdecrypt.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfsdecrypt.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfscp.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfscp.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfscmp.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfscmp.8.in ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfscluster.h ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfscluster.c ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/ntfscluster.8.in
详解Linux安装GCC方法
详解Linux安装GCC⽅法写在前⾯捞nginx的时候回过头来看gcc的安装,才发现这篇怎么这么长,还是转载的。
看不下去了,现重新总结⼀下,简单粗暴的两⾏命令。
操作步骤⼀.安装(基于Centos6.5, 其他系列Linux系统命令有所不同)yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automakeyum -y install wget httpd-tools vim1.就把gcc当成c语⾔编译器, g++当成c++语⾔编译器⽤就是了.(知乎)2.wget是⼀个从⽹络上⾃动下载⽂件的⾃由⼯具, 可以在⽤户退出系统的之后在后台继续执⾏, 直到下载任务完成.(百度百科)⼆.测试(查看版本信息, 编译Helloworld)1.查看gcc版本信息gcc --version2.编写Helloworld创建名为ctest.c⽂件touch ctest.c编辑该⽂件#include <stdio.h>int main(){printf("hello world!\n");return0;}编译gcc ctest.c可以看到⽣成了a.out⽂件执⾏a.out./a.out输出结果提⽰:若遇到虚拟机⽆法上⽹问题, 这篇可能会帮到你: .感谢转载部分=====================以下为转载内容(太长,忽略不看了)=====================如果为没有联⽹状态下, 那就耐着性⼦看吧.现在很多程序员都应⽤GCC,怎样才能更好的应⽤GCC。
⽬前,GCC可以⽤来编译C/C++、FORTRAN、、OBJC、ADA等语⾔的程序,可根据需要选择安装⽀持的语⾔。
本⽂以在Redhat 安装GCC4.1.2为例(因在项⽬开发过程中要求使⽤,没有⽤最新的GCC版本),介绍Linux 安装GCC过程。
安装之前,系统中必须要有cc或者gcc等编译器,并且是可⽤的,或者⽤环境变量CC指定系统上的编译器。
Linux编译安装新的内核
Linux编译安装新的核心内容要求:1、概述:描述有关概念;2、实验步骤:即查找、下载、编译、安装核心的完整步骤;3、问题及其解决:实验中碰到的问题,解决问题的办法;4、小结:包括如何分工合作,以及解决问题的心得,供今后参考。
)第一概念:在编译内核之前我们先来了解几个相关的概念,这将有助于我们更好的完成这次实验1.内核,是一个操作系统的核心。
它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
(内核源程序都可以在/usr/src/linux下找到)我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核. 2.内核版本号:由于Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。
Linux的开发采用的是集市模型(bazaar,与cathedral--教堂模型--对应),为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。
一个树是稳定树(stable tree),另一个树是非稳定树(unstable tree)或者开发树(development tree)。
一些新特性、实验性改进等都将首先在开发树中进行。
如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。
一旦开发树经过了足够的发展,开发树就会成为新的稳定树。
开发数就体现在源程序的版本号中;源程序版本号的形式为x.y.z:对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(因此,是奇数)。
到目前为止,稳定树的最高版本是2.2.16,最新发布的Redhat7.0所采用的就是2.2.16的内核;开发树的最新版本是2.3.99。
也许你已经发现和多网站上都有2.4.0-test9-pre7之类的内核,但是这并不是正式版本。
内核版本的更新可以访问。
3. 为什么重新编译内核Linux内核版本不断更新。
linux下安装gcc详解
linux下安装gcc详解1、了解⼀下gcc ⽬前,GCC可以⽤来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语⾔的程序,可根据需要选择安装⽀持的语⾔。
我⾃⼰linux上是4.1.2版本,是不⽀持openMP的,⽽⾃⼰⼜要⽤到openMP,所以⾃⼰在原来的基础上安装了⼀个4.2以上版本的。
在安装之前,系统必须有cc或者gcc的编译器,如果没有,就不能安装更⾼版本的gcc了,如果是这种情况,可以在⽹上找⼀个与你系统相适应的如RPM等⼆进制形式的GCC软件包来安装使⽤。
本⽂介绍的是以源代码安装gcc的过程,我安装的是在⼀个单独的⽬录下,以后想卸载的话,直接删除该⽬录就⾏,本⽂介绍的是安装4.3.4版本的详细过程。
只需要按照以下步骤来⼀步⼀步安装就⾏。
2、需要下载的安装包2.1 下载gcc 下载⽹址是/gnu/gcc/,可以根据⾃⼰的需要下载哪个版本,我选择的是4.3.4版本。
⾥⾯有gcc-4.3.4.tar.bz2,gcc-4.3.4.tar.gz,任意选⼀个就⾏,它们是完全⼀个样的。
我选择的是gcc-4.3.4.tar.gz。
还可以查看Changes: /gcc-4.5/changes.htm,相⽐上⼀个版本有哪些改变,⾃⼰随便看就⾏2.2 下载3个依赖包 ⼀个是mpc,⼀个是gmp,⼀个是mpfr,下载地址依次为:ftp:///gnu/mpc/mpc-1.0.2.tar.gz,ftp:///gnu/gmp/gmp-5.0.1.tar.bz2,/gnu/mpfr/mpfr-3.1.2.tar.gz。
安装的顺序依次为:GMP,mpfr, mpc,最后安装gcc。
我开始就直接安装gcc,在配置过程出现以下信息:configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.Try the --with-gmp, --with-mpfr and/or --with-mpc options to specifytheir locations. 提⽰安装gcc之前,必须安装GMP 4.2以上版本,MPFR2.3.1以上版本, MPC 0.8.0以上版本。
gcc11 编译
gcc11 编译
gcc11 是指在 Linux 平台上使用的 C 和 C++ 编译器的版本。
要使用 gcc11 编译程序,您可以按照以下步骤操作:
1. 在 Linux 终端中打开您要编译的源代码目录。
2. 使用以下命令编译 C 代码:
```
gcc-11 -o output_file input_file.c
```
其中 `output_file` 是生成的可执行文件的名称,`input_file.c` 是要编译的 C 源代码文件的名称。
3. 使用以下命令编译 C++ 代码:
```
g++-11 -o output_file input_file.cpp
```
其中 `output_file` 是生成的可执行文件的名称,`input_file.cpp` 是要编译的 C++ 源代码文件的名称。
4. 编译完成后,使用以下命令运行生成的可执行文件:
```
./output_file
```
请注意,gcc11 编译器可能需要通过您的 Linux 发行版的软件包管理器进行安装。
具体的安装步骤可能因发行版而异。
linux下安装gcc
为了在Ubuntu下安装那令人悲催的GCC,小弟可是绞尽脑汁,连干三天。
当我搞清楚那些破软件m4,gmp mpfr,mpc等之间的依赖关系,依照强大的度娘提示下,安装了一遍又一边一边又一边·····它就是不成!shit!就当俺不得不做出抛弃GCC的念头之时,又是度娘!原来Ubuntu11.04自带GCC的!!!在此建议各位大虾,在安装GCC之前,先check一下你的Linux 中是否自带了GCC。
下面是小弟,在这悲催的三天所学到如何在Ubuntu下安装GCC的过程:安装过程第一步,从网站上下载文件gcc-4.6.0.tar.bz2第二步,将该文件拖至tmp目录下。
然后解压缩,在命令行tar vxjf gcc-4.1.1.tar.bz2,解压后你可以看到在tmp目录下有gcc-4.6.0文件第三步,对源文件进行配置,用命令mkdirgcc-buildcdgcc-build../gcc-4.6.0/configure --prefix=/usr/local/gcc-4.6.0 --enable-threads=posix --disable-checking--disable-multilib --enable-languages=c,c++编译错误提醒:提醒信息:configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.说明要安装gcc需要GMP、MPFR、MPC这三个库,于是又从网上下了三个库的压缩包。
由于MPFR依赖GMP,而MPC依赖GMP和MPFR,所以要先安装GMP,其次MPFR,最后才是MPC。
这里三个库我用的版本分别是gmp5.0.1,mpfr2.4.2和mpc0.8.1。
先开始安装GMP。
解压GMP的压缩包后,得到源代码目录gmp-5.0.1。
GCC使用入门与安装方法
Linux编程起步 GCC基本用法初学时最好从命令行入手,这样可以熟悉从编写程序、编译、调试和执行的整个过程。
编写程序可以用vi或其它编辑器编写。
编译则使用GCC命令。
要往下学习首先就得熟悉GCC命令的用法。
GCC命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心。
一. 常用编译命令选项假设源程序文件名为test.c。
1. 无选项编译链接用法:#gcc test.c作用:将test.c预处理、汇编、编译并链接形成可执行文件。
这里未指定输出文件,默认输出为a.out。
2. 选项 -o用法:#gcc test.c -o test作用:将test.c预处理、汇编、编译并链接形成可执行文件test。
-o选项用来指定输出文件的文件名。
3. 选项 -E用法:#gcc -E test.c -o test.i作用:将test.c预处理输出test.i文件。
4. 选项 -S用法:#gcc -S test.i作用:将预处理输出文件test.i汇编成test.s文件。
5. 选项 -c用法:#gcc -c test.s作用:将汇编输出文件test.s编译输出test.o文件。
6. 无选项链接用法:#gcc test.o -o test作用:将编译输出文件test.o链接成最终可执行文件test。
7. 选项-O用法:#gcc -O1 test.c -o test作用:使用编译优化级别1编译程序。
级别为1~3,级别越大优化效果越好,但编译时间越长。
二. 多源文件的编译方法如果有多个源文件,基本上有两种编译方法:[假设有两个源文件为test.c和testfun.c]1. 多个文件一起编译用法:#gcc testfun.c test.c -o test作用:将testfun.c和test.c分别编译后链接成test可执行文件。
2. 分别编译各个源文件,之后对编译后输出的目标文件链接。
arm-linux-gcc下载与安装
[root@localhost ~]#
重新测试交叉编译是否能
用
[root@localhost ~]# arm-linux-gcc test.c -o test
[root@localhost ~]#
[root@localhost ~]#
检验是否替换完成
[root@localhost ~]# strings /usr/lib/libstdc++.so.6|grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
打开设置文件
[root@localhost opt]# vi /etc/profile
在打开的文件的
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
在友善之臂官方网站/download.asp下载arm-linux-gcc4.4.3。
2,删除之前安装有旧版本,执行
[root@localhost ~]# rm -rf /opt/arm
3,对新版本arm-linux-gcc-4.4.3进行解压(注意,如果我们加上了-C,那么就会自动解压到/usr/local/arm/这个目录下),但是友善之臂按照下列方式解压,不会解压到/usr/local/arm/目录下的,这是因为友善之臂把/usr/local/arm/目录修改成了 /opt/FriendlyARM/toolschain/,除非自己在把它修改过来
Linux安装GCC流程详解
Linux安装GCC流程详解第⼀步:安装低版本gcc命令:gcc -v #查看GCC是否安装命令:yum -y install gcc automake autoconf libtool make #默认安装4.8.5版本gcc第⼆步:升级gcc命令:yum groupinstall "Development Tools" #安装Centos7默认的开发⼯具,包含gcc,g++,make等等⼀系列⼯具命令:strings /usr/lib64/libstdc++.so.6 | grep GLIBC #查看动态库命令:tar zxvf gcc-8.5.0.tar.gz #将下载的gcc升级包解压命令:cd /gcc-8.5.0 #进⼊解压⽬录命令:./contrib/download_prerequisites #运⾏gcc的依赖软件⾃动下载配置脚本,并配置安装依赖库命令:./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib #⽣成Makefile⽂件命令:Make #编译GCC命令:ls /usr/local/bin | grep gcc命令:Make install #安装GCC第三步:将GCC在线升级到最新版本命令:yum -y install centos-release-scl #安装centos-release-scl命令:yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils #安装最新版本的GCC命令:scl enable devtoolset-9 bash命令:echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile #修改环境变量命令:gcc -v。
Redhat linux上安装 gcc编译器
在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种:1)一种是软件的源代码,您需要自己动手编译它。
这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz)。
2)另一种是软件的可执行程序,你只要安装它就可以了。
这种软件安装包通常被是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm。
当然,也有用rpm格式打包的源代码,用gzip压缩过的可执行程序包。
只要您理解了以下的思路,这两种形式的安装包也不在话下了。
下面,我们就分成两个部分来说明软件安装思路:第一部分:搞定.tar.gz1.首先,使用tar -xzvf来解开这个包,如:#tar -xzvf apache_1_3_6_tar.gz这样就会在当前目录中创建了一个新目录(目录名与.tat.gz包的文件名类似),用来存放解压了的内容。
如本例中就是apache_1.3.62.进入这个目录,再用ls命令查看一下所包含的文件,如:#cd apache_1.3.6#ls你观察一下这个目录中包含了以下哪一个文件:configure、Makefile还是Imake。
1)如果是configure文件,就执行:#./configure#make#make install2)如果是Makefile文件,就执行:#make#make install3)如果是Imake文件,就执行:#xmkmf#make#make install3.如果没有出现什么错误提示的话,就搞定了。
至于软件安装到什么地方,通常会在安装时出现。
否则就只能查阅一下README,或者问问我,:-)如果遇到错误提示,也别急,通常是十分简单的问题:1)没有安装C或C++编译器;确诊方法:执行命令gcc(C++则为g++),提示找不到这个命令。
解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:#rpm -ivh gcc* (哈哈,我们用到了第二种安装方式)2)没有安装make工具;确诊方法:执行命令make,提示找不到这个命令。
cuda 程序linux编译
cuda 程序linux编译摘要:1.CUDA简介2. Linux环境下CUDA程序编译方法3.具体步骤详解4.编译与运行示例5.总结与拓展正文:【1.CUDA简介】CUDA(Compute Unified Device Architecture)是NVIDIA推出的一种通用并行计算架构。
它允许开发人员利用NVIDIA GPU(图形处理器)进行高性能计算。
CUDA程序可以在Linux、Windows和MacOS等操作系统上运行。
在本篇文章中,我们将重点介绍如何在Linux环境下编译CUDA程序。
【2.Linux环境下CUDA程序编译方法】在Linux环境下,CUDA程序的编译需要用到NVIDIA提供的CUDA Toolkit。
首先,确保已正确安装CUDA Toolkit。
接着,编写CUDA程序,并在编译时使用CUDA相关的库。
【3.具体步骤详解】以下是在Linux环境下编译CUDA程序的具体步骤:1)创建CUDA源文件(.cu):使用CUDA语言(C++或C)编写源代码。
2)安装编译器:确保已安装GCC(GNU编译器集合),例如:`sudo apt-get install gcc`。
3)配置CUDA编译环境:在编译CUDA程序时,需要链接CUDA库。
在终端中输入以下命令配置CUDA编译环境:```export PATH=/usr/local/cuda/bin:$PATHexportLD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH ```4)编译CUDA程序:使用以下命令编译CUDA源文件:```g++ -o output filename.cu -lcuda```其中,`filename.cu`为CUDA源文件名称,`output`为编译后的可执行文件名称。
5)运行编译后的程序:在终端中输入以下命令运行编译后的CUDA程序:```./output```【4.编译与运行示例】以下是一个简单的CUDA程序示例:```cpp#include <iostream>#include <cuda_runtime.h>__global__ void kernel(int* array, int length) {int index = blockIdx.x * blockDim.x + threadIdx.x;if (index < length) {array[index] += 1;}}int main() {const int length = 100;int* h_array = new int[length];for (int i = 0; i < length; ++i) {h_array[i] = 0;}int* d_array;cudaMalloc(&d_array, length * sizeof(int));cudaMemcpy(d_array, h_array, length * sizeof(int), cudaMemcpyHostToDevice);int block_size = 256;int grid_size = (length + block_size - 1) / block_size;kernel<<<grid_size, block_size>>>(d_array, length);cudaMemcpy(h_array, d_array, length * sizeof(int), cudaMemcpyDeviceT oHost);for (int i = 0; i < length; ++i) {std::cout << h_array[i] << " ";}std::cout << std::endl;cudaFree(d_array);delete[] h_array;return 0;}```【5.总结与拓展】本文介绍了在Linux环境下编译CUDA程序的方法和具体步骤。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
查看Changes:/gcc-4.5/changes.htm现在很多程序员都应用GCC,怎样才能更好的应用GCC。
目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。
本文以在Redhat Linux安装GCC4.1.2为例(因在项目开发过程中要求使用,没有用最新的GCC 版本),介绍Linux安装GCC过程。
安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。
如果系统上没有编译器,不能安装源代码形式的GCC 4.1.2。
如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。
本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。
系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的。
与此不同,现在GCC建议我们将一个版本的GCC安装在一个单独的目录下。
这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常。
在本文中采用这个方案安装GCC 4.1.2,并且在安装完成后,仍然能够使用原来低版本的GCC编译器,即一个系统上可以同时存在并使用多个版本的GCC编译器。
按照本文提供的步骤和设置选项,即使以前没有安装过GCC,也可以在系统上安装上一个可工作的新版本的GCC编译器。
1 下载在GCC网站上()或者通过网上搜索可以查找到下载资源。
目前GCC的最新版本为 4.2.1。
可供下载的文件一般有两种形式:gcc-4.1.2.tar.gz和gcc-4.1.2.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。
2. 解压缩拷贝gcc-4.1.2.tar.bz2(我下载的压缩文件)到/usr/local/src(根据自己喜好选择)下,根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符):% tar zxvf gcc-4.1.2.tar.gz或者% bzcat gcc-4.1.2.tar.bz2 | tar xvf -新生成的gcc-4.1.2这个目录被称为源目录,用${srcdir}表示它。
以后在出现${srcdir}的地方,应该用真实的路径来替换它。
用pwd命令可以查看当前路径。
在${srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏览器打开index.html阅读。
3. 建立目标目录目标目录(用${objdir}表示)是用来存放编译结果的地方。
GCC建议编译后的文件不要放在源目录${srcdir]中(虽然这样做也可以),最好单独存放在另外一个目录中,而且不能是${srcdir}的子目录。
例如,可以这样建立一个叫 /usr/local/gcc-4.1.2的目标目录:% mkdir /usr/local/gcc-4.1.2% cd gcc-4.1.2以下的操作主要是在目标目录 ${objdir} 下进行。
(否则会出错,后面有解释)4. 配置配置的目的是决定将GCC编译器安装到什么地方(${destdir}),支持什么语言以及指定其它一些选项等。
其中,${destdir}不能与${objdir}或${srcdir}目录相同。
配置是通过执行${srcdir}下的configure来完成的。
其命令格式为(记得用你的真实路径替换${destdir}):% ${srcdir}/configure --prefix=${destdir} [其它选项]例如,如果想将GCC 4.1.2安装到/usr/local/gcc-4.1.2目录下,则${destdir}就表示这个路径。
在我的机器上,我是这样配置的:% ../gcc-4.1.2/configure --prefix=/usr/local/gcc-4.1.2 --enable-threads=posix --disable-che cking --enable--long-long --host=i386-redhat-linux--with-system-zlib --enable-languages= c,c++,java将GCC安装在/usr/local/gcc-4.1.2目录下,支持C/C++和JAVA语言,其它选项参见GCC 提供的帮助说明。
5. 编译% make6. 安装执行下面的命令将编译好的库文件等拷贝到${destdir}目录中(根据你设定的路径,可能需要管理员的权限):% make install至此,GCC 4.1.2安装过程就完成了。
7. 其它设置GCC 4.1.2的所有文件,包括命令文件(如gcc、g++)、库文件等都在${destdir}目录下分别存放,如命令文件放在bin目录下、库文件在 lib下、头文件在include下等。
由于命令文件和库文件所在的目录还没有包含在相应的搜索路径内,所以必须要作适当的设置之后编译器才能顺利地找到并使用它们。
7.1 gcc、g++、gcj的设置要想使用GCC 4.1.2的gcc等命令,简单的方法就是把它的路径${destdir}/bin放在环境变量PATH中。
我不用这种方式,而是用符号连接的方式实现,这样做的好处是我仍然可以使用系统上原来的旧版本的GCC编译器。
首先,查看原来的gcc所在的路径:% which gcc在我的系统上,上述命令显示:/usr/bin/gcc。
因此,原来的gcc命令在/usr/bin目录下。
我们可以把GCC 4.1.2中的gcc、g++、gcj等命令在/usr/bin目录下分别做一个符号连接:% cd /usr/bin% ln -s ${destdir}/bin/gcc gcc412% ln -s ${destdir}/bin/g++ g++412% ln -s ${destdir}/bin/gcj gcj412这样,就可以分别使用gcc412、g++412、gcj412来调用GCC 4.1.2的gcc、g++、gcj完成对C、C++、JAVA程序的编译了。
同时,仍然能够使用旧版本的GCC编译器中的gcc、g++等命令。
(cool,我感觉棒极了!!1)7.2 库路径的设置将${destdir}/lib路径添加到环境变量LD_LIBRARY_PATH中,例如,如果GCC 4.1.2安装在/usr/local/gcc-4.1.2目录下,在RH Linux下可以直接在命令行上执行% export LD_LIBRARY_PATH=/usr/local/gcc-4.1.2/lib最好添加到系统的配置文件中,这样就不必要每次都设置这个环境变量了,在文件$HOME/.bash_profile中添加下面两句:LD_LIBRARY_PATH=/usr/local/gcc-4.1.2/lib:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH重启系统设置生效,或者执行命令% source $HOME/.bash_profile用新的编译命令(gcc412、g++412等)编译你以前的C、C++程序,检验新安装的GCC编译器是否能正常工作。
完成了Linux安装GCC,之后你就能轻松地编辑了。
from:/art/200912/168804.htm在RHLinux下安装gcc-4.0.1方法比较简单,但是安装过程中有些环节是需要注意的,否则,可能会导致安装不成功,或者安装报错。
具体安装过程如下:首先,下载并解压缩gcc的RPM包至源目录(如/opt/gcc-4.0.1)1、解压缩RPM包:[root@linuxopt]# tar xjvf gcc-4.0.1.tar.bz2 (解压后生成源目录/opt/gcc-4.0.1)2、创建安装目标目录:[root@linux opt]# mkdir /usr/local/gcc-4.0.1/3、进入安装目标目录:[root@linux opt]# cd /usr/local/gcc-4.0.1/ (这一步很重要,配置安装文件时,需要在目标目录下执行configure命令)[root@linux opt]# pwd/usr/local/gcc-4.0.14、配置安装文件:[*****************.1]#/opt/gcc-4.0.1/configure--prefix=/usr/local/gcc-4.0.1/(这一步非常重要,需要在安装的目标目录下,执行源目录 /opt/gcc-4.0.1/中的configure命令,配置将gcc安装到目标目录/usr/local/gcc-4.0.1/)creating cache ./config.cachechecking host system type... i686-pc-linux-gnu5、编译安装文件:[*****************.1]#pwd/usr/local/gcc-4.0.1[*****************.1]#make(在目标目录下执行编译)6、安装gcc:[*****************.1]#pwd/usr/local/gcc-4.0.1[*****************.1]#makeinstall(在目标目录下执行安装)如果安装过程中步骤和命令没有错误,你肯定能安装成功。
---------------------------------------------------------------------首先,现在最新的包GCC 4.2.bz2,一般的到处都有的下,linux下的下载速度很满,20多k,很恶心,我喜欢迅雷的下载速度,在windows下下载,大概42M,下载速度2到4M,回到linux下,挂载,ntfs格式的我的,具体不说了,说安装!进入到挂载的目录下,先cp GCC4.2.bz2 /azuo,cd /azuo,tar -xvf GCC 4.2.bz2 ,得到gcc-4.2,cd gcc-4.2,在/usr目录下建立一个文件夹就是现在要存放新的gcc的目录,mkdir /usr/gcc4./configure –prefix=/usr/gcc4回车,就会有配置信息,只要不报错就可以了,make,这个过程很久,因为我没有设置一些具体的选项,因此,所有的组件几乎都要编译一遍,我的电脑cpu:AMD 3200+X2 ,1.5g内存,大概花费一个半小时。
到这个时候为止,/usr/gcc4下还没有任何东西,编译过程都是发生在源文件夹,让我们再来一个动作,所有的要用到的东西都会配置到目标文件夹下,make install;这个过程也不短,等着就是了。