linux下安装gcc所需的包及安装步骤:
Linux操作系统下的C语言开发环境搭建测试题
Linux操作系统下的C语言开发环境搭建测试题(答案见尾页)一、选择题1. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?A. 安装GCC编译器B. 设置环境变量C. 编译和运行C程序D. 配置终端2. 在Linux操作系统中,以下哪个命令可以用来编译和运行C程序?A. gccB. g++C. chmodD. make3. 在Linux操作系统中,如何修改默认的编译器路径?A. 修改PATH环境变量B. 使用export命令C. 编辑/etc/profile文件D. 修改gcc的配置文件4. 在Linux操作系统中,安装了GCC编译器后,如何验证其安装成功?A. 输入gcc --version命令B. 输入gcc -v命令C. 输入gcc --configure命令D. 输入gcc -E命令5. 在Linux操作系统中,如何配置终端以方便进行C语言编程?A. 更改终端的提示符B. 安装tmux或screen工具C. 配置bashrc文件6. 在Linux操作系统中,如何使用GDB调试器调试C程序?A. 安装gdb软件包B. 编译程序时添加-g选项C. 使用gdb命令启动程序D. 查看程序内存布局7. 在Linux操作系统中,如何查看源代码文件的内容?A. 使用cat命令B. 使用less命令C. 使用grep命令D. 使用find命令8. 在Linux操作系统中,如何使用vi编辑器编辑C语言源代码文件?A. 进入vi编辑器B. 编辑文件内容C. 保存文件并退出vi编辑器D. 检查文件是否已保存9. 在Linux操作系统中,如何通过FTP上传和下载文件?A. 使用ftp命令B. 使用sftp命令C. 使用scp命令D. 使用ls命令10. 在Linux操作系统中,如何设置用户权限以确保C语言源代码的安全?A. 使用chmod命令B. 使用chown命令C. 使用umask命令D. 使用acl命令11. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?B. 设置环境变量C. 配置编译选项D. 编译和运行C程序12. 在Linux系统下,如何修改一个文件的权限使其可读可写?A. chmod 666 filenameB. chmod 777 filenameC. chmod 644 filenameD. chmod 755 filename13. 在Linux系统下,使用以下哪个命令可以查看文件的详细信息,如文件大小、创建日期等?A. ls -lB. df -hC. tar -xvf file.tarD. stat filename14. 在Linux系统下,如何使用vi编辑器打开一个文件?A. vi filenameB. vim filenameC. nano filenameD. emacs filename15. 在Linux系统下,安装了GCC编译器后,如何验证其是否正确安装?A. echo $PATHB. which gccC. gcc --versionD. all of the above16. 在Linux系统下,如何创建一个新的目录并进入该目录?A. mkdir new_directoryB. cd new_directoryC. rmdir new_directoryD. mkdir -p new_directory17. 在Linux系统下,如何使用grep命令在文本中搜索特定的字符串?A. grep "search_string" filenameB. grep "search_string" filename | lessC. grep "search_string" filename | moreD. all of the above18. 在Linux系统下,如何修改一个文件的换行符为LF(Unix风格)?A. dos2unix filenameB. unix2dos filenameC. cat filename | tr '' '' > filenameD. all of the above19. 在Linux系统下,如何使用find命令查找特定文件?A. find / -name "filename_pattern"B. find . -type f -name "filename_pattern"C. find / -name "filename_pattern" -printD. all of the above20. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?A. 安装编译器B. 配置编译环境变量C. 安装文本编辑器D. 编写、编译和运行C源代码21. 在Linux操作系统下,以下哪个命令可以用来编译和运行C语言源代码?A. gccB. g++C. chmodD. make22. 在Linux操作系统下,以下哪个命令可以用来安装一个新的C语言库?A. apt-getB. yumC. pacman23. 在Linux操作系统下,以下哪个命令可以用来查看源代码的层次结构?A. catB. grepC. treeD. less24. 在Linux操作系统下,以下哪个命令可以用来创建一个新目录?A. mkdirB. rmdirC. touchD. cp25. 在Linux操作系统下,以下哪个命令可以用来删除一个文件?A. rmB. mvC. rmdirD. cp26. 在Linux操作系统下,以下哪个命令可以用来复制文件或目录?A. cpB. mvC. rmD. ln27. 在Linux操作系统下,以下哪个命令可以用来查看文件的内容?A. catB. grepC. lessD. head28. 在Linux操作系统下,以下哪个命令可以用来查找文件?A. findB. locateD. man29. 在Linux操作系统下,以下哪个命令可以用来查看当前目录的内容?A. lsB. cdC. pwdD. man30. Linux操作系统下,C语言开发环境的搭建需要哪些步骤?A. 安装GCC编译器B. 配置内核头文件C. 安装文本编辑器D. 配置终端环境31. 在Linux操作系统下,如何验证C语言编译成功?A. 编译一个简单的C源代码,观察是否有语法错误B. 使用命令行进入编译后的目录,查看生成的可执行文件C. 在终端中输入编译命令,观察是否有错误信息D. 将编译后的程序在另一个系统中运行,检查功能是否实现32. Linux操作系统下,C语言开发常用的文本编辑器有哪些?A. VimB. EmacsC. nanoD. Kate33. 在Linux操作系统下,如何配置终端环境以便于C语言编程?A. 设置默认编码为UTF-8B. 配置PATH环境变量,确保编译器路径已添加C. 安装并配置版本控制工具(如Git)D. 配置别名,提高编程效率34. 在Linux操作系统下,C语言开发中常用的调试工具有哪些?A. GDB调试器B. DDD调试工具C. Valgrind内存检测工具D. printf()函数调试35. Linux操作系统下,C语言开发环境的搭建过程中,如何配置网络连接?A. 修改网络配置文件,设置静态IP地址B. 关闭防火墙,确保端口畅通C. 配置DNS服务器,解析域名D. 使用Wireshark工具监控网络流量36. 在Linux操作系统下,C语言开发环境中,如何管理项目文件?A. 使用版本控制工具(如Git)进行项目管理B. 使用文件系统树形结构管理项目文件C. 使用目录和文件名来管理项目文件D. 使用标签系统管理项目文件37. Linux操作系统下,C语言开发环境的搭建完成后,如何优化编译速度?A. 升级GCC编译器到最新版本B. 优化编译选项,减少编译时间C. 使用增量编译,避免重复编译D. 使用并行编译,提高编译速度38. 在Linux操作系统下,C语言开发环境的搭建过程中,如何安装必要的库文件?A. 使用包管理器(如apt或yum)安装库文件B. 从官方网站下载库文件并手动安装C. 从源代码编译库文件并安装D. 使用静态链接库文件,减少动态链接的内存开销39. Linux操作系统下,C语言开发环境的搭建完成后,如何进行代码测试和调试?A. 使用GDB调试器进行单步调试B. 使用DDD调试工具查看内存状态C. 使用printf()函数打印变量值进行调试D. 使用单元测试框架进行自动化测试40. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?A. 安装GCC编译器B. 配置环境变量C. 安装文本编辑器D. 编译和运行C程序41. 在Linux操作系统下,以下哪个命令可以用来查看系统中的所有进程?A. ps -efB. topC. freeD. all42. 在Linux操作系统下,如何修改一个文件的权限使得文件所有者具有读写权限,其他用户只具有读权限?A. chmod 644 filenameB. chmod 755 filenameC. chmod 664 filenameD. chmod 777 filename43. 在Linux操作系统下,使用以下哪个命令可以查看当前目录下的隐藏文件?A. ls -aB. ls -lC. ls -hD. ls -d44. 在Linux操作系统下,如何安装一个新软件包?A. apt-get updateB. yum install package_nameC. pacman -S package_nameD. brew install package_name45. 在Linux操作系统下,如何使用grep命令查找包含特定字符串的文件?A. grep "search_string" filenameB. grep "search_string" /path/to/filenameC. grep "search_string" $(find /path/to/search -type f)D. grep "search_string" /path/to/search/*46. 在Linux操作系统下,如何修改文件的所有者和组?A. chown new_owner:new_group filenameB. chown new_owner:new_group /C. chown new_owner:new_group *D. chown new_owner:new_group .47. 在Linux操作系统下,如何创建一个新的用户组?A. groupadd group_nameB. groupadd -g GID group_nameC. groupadd -G GID group_nameD. groupadd -p group_name48. 在Linux操作系统下,如何设置Shell提示符?A. export PS1="\u@\h:\w\$ "B. export PS1="\u@\h:\w\$ "C. export PS1="\u@\h:\w\\$ "D. export PS1="\u@\h:\w\$ "二、问答题1. 请简述在Linux操作系统下搭建C语言开发环境的步骤。
cgywin升级gcc
安装cygwin后,gcc的版本到3.3.4版本,在编译一些Linux文件的时候有时会出现错误,比如编辑htun的时候,会出现MAX_PATH未声明的问题,这个时候需要升级GCC来满足要求。
假设你已经安装了Cygwin了,在Cygwin中包含了gcc编译器,升级GCC的步骤如下:1.在ftp:///sites//pub/gcc/下下载GCC的包。
2.编译安装gcc-4.3.0.步骤如下将gcc-4.3.0.tar.gz解压到C:\cygwin\home\Administrator目录下。
解压到这个目录中,避免了目录编译配置的麻烦。
进入Cygwin Bash Shell,cd gcc-4.3.0gcc-4.3.0下的信息,ls -a编译 ./Configure 需要一段时间生成makefilemake使用makefile生成安装文件,这个过程需要的时间很长,完成以后敲入make install命令,这个时候开始进行安装,需要个几分钟的时间3.查看GCC的版本gcc -v,这个时候显示的内容为:Using build-in specs.Target:i686-pc-cygwinconfigured with: ./configureThread model:singlegcc version 4.3.0(GCC)gcc4.0MILY: 宋体">发布了,可惜cygwin现在最新的是gcc3.4.1。
通过下载cygwin的安装包来用gcc4.0,看来还是需要等上一段时间,那我如何这让我如何能够忍受呢?我以前在linux 升级过gcc,那么在cygwin能不能呢?我按照以前在linux下升级gcc的顺序在cygwin下来了一遍,结果是可以的,顺序和在linux 下差不多。
1 首先在 下载gcc4.0的包gcc-4.0.0.tar.gz。
2 使用winrar把gcc-4.0.0.tar.gz解压在安装目录下(c:\temp\ gcc-4.0.0),比在linux下容易多了,呵呵。
Centos8安装gcc的方法
Centos8安装gcc的⽅法GCCGCC是GNU编译器套件,是由GNU开发的编程语⾔的编译器。
GNU编译器套件包括C、C++、Objective-C、Fortran、Java、Ada和Go语⾔及这些语⾔的库,使⽤gcc编译程序时,编译过程可以为4个阶段:预处理(Pre-Processing)、编译(Compiling)、汇编(Assembling)、链接(Linking)由于 Linux 操作系统的⾃由开源,在其基础上衍⽣出了很多不同的Linux操作系统,如CentOS、Ubuntu、Debian等,这些Linux发⾏版中,⼤多数都默认装有GCC编译器,但是在CentOS8中并没有安装,这就需要⾃⼰来安装了下⾯介绍在线安装、离线安装及版本升级⽅法,安装系统是CentOS 8.3,其它版本可能略有不同在线安装是⼀种极其简单的“傻⽠式”安装⽅法,但是其默认根据当前系统版本所对应的gcc进⾏安装,⽽⾮选择最新版gcc进⾏安装1. 确认当前系统是否已安装gcc,执⾏以下命令rpm -q gcc#或者输⼊查看gcc版本的命令gcc -v2. 使⽤命令安装dnf install gcc gcc-c++ -y3. 等待安装结束后再次输⼊查看gcc版本的命令,出现gcc版本信息就说明安装成功啦rpm -q gcc#输⼊查看gcc版本的命令gcc --versongcc -vg++ -v将gcc-8.3升级到gcc10.2,若未安装gcc,不能使⽤该⽅法直接安装gcc,没有旧版本的gcc,编译时会失败的,会报错configure: error: no acceptable C compiler found in $PATH1. 下载gcc-10.2的安装包,若下载失败可以通过国内镜像站下载,在华为、阿⾥、清华等镜像站搜索GNU,选择需要的版本wget https:///pub/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.gz2. 解压并进⼊⽬录tar -zxf gcc-10.2.0.tar.gzcd gcc-10.2.03. 执⾏以下命令,下载安装gcc的依赖包,由于⽹络原因,下载时间可能会有点久,请耐⼼等待./contrib/download_prerequisites4. 由于gcc编译器⽀持多种语⾔的编译,⽽实际情况中可能只需要编译 1~2 种编程语⾔,因此需要对其进⾏必要的配置。
手动安装gcc4.8.5
⼿动安装gcc4.8.5编译安装说明以及注意1、服务器是 x86_64 最好在configure阶段加上编译选项–build=x86_64-linux,避免找不到到⽂件之类的错误2、–prefix 不覆盖原来的gcc,⾃定义编译安装路径3、–enable-languages 编译出来的gcc⽀持的语⾔4、LD_LIBRARY_PATH 环境变量很重要,如果不指定,make会出奇奇怪怪的错误,LD_LIBRARY_PATH⽤于在程序加载运⾏期间查找动态链接库时指定除了系统默认路径之外的其他路径5、make -j8 指定线程个数,我这⾥是8线程cpu三、配置环境变量PATH四、检查最新版gcc 黄海点评:速度极慢,⽬前已40分钟,仍没有完成,还是⽼⽼实实的yum 吧。
已经1个⼩时过去了,还在编译!MOY GOD!# 下载gccwget ftp:///gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz# 解压并进⼊⽬录tar -zxvf gcc-4.8.5.tar.gzcd gcc -4.8.5# 安装依赖三⼤件,会⾃动顺序安装gmp 、mpfr 、mpc./contrib/download_prerequisites# 回到上级,创建编译⽬录 gcc -4.8.5-buildcd ..mkdir gcc -4.8.5-buildcd gcc -4.8.5-build# 开始编译安装../gcc-4.8.5/configure --prefix=/usr/local/gcc --enable-languages=c,c++ --build=x86_64-linux --disable-multilib# 设置环境变量 LD_LIBRARY_PATHLD_LIBRARY_PATH ="$LD_LIBRARY_PATH:/usr/local/lib"## make -j$(nproc)make -j8make install在⽂件 ~/.bashrc 中添加下⾯⼀⾏export PATH =/usr/local/gcc/bin:$PATH 保存后执⾏ source ~/.bashrc[root@huangdc local]# gcc -vUsing built -in specs.COLLECT_GCC =gccCOLLECT_LTO_WRAPPER =/usr/local/gcc/libexec/gcc/x86_64-linux/4.8.5/lto-wrapperTarget: x86_64-linuxConfigured with: ../gcc-4.8.5/configure --prefix=/usr/local/gcc --enable-languages=c,c++ --build=x86_64-linux --disable-multilibThread model: posixgcc version 4.8.5 (GCC)。
arm-linux-gcc 4.3.2编译安装过程
arm-linux-gcc 4.3.2编译安装过程收藏arm-linux-gcc 4.3.2编译安装过程本文由《我的arm-gcc工具编译安装过程》修正而成,红字部分为与原作不同之处,希望对大家有所帮助。
原文地址:/blog/static/28351497200902193223687/我的编译环境是在ubuntu8.10 amd64,gcc版本为4.3.2,编译的linux内核版本为2.6.8,故后面需要修改少许内核头文件。
开始前确认环境里有texinfo, gawk(注意mawk编译glibc header时会有问题), bison, flex,没有就安装它们。
>sudo apt-get install texinfo gawk bison flex工作的目录是用户目录下源文件放在目录cross_source里编译的工作目录是cross_buildxxx 就是存放解压出来的源代码,例如binutils-2.19.tar.bz2,解压放在binutils-2.19 xxx_build 用于编译的目录,例如binutils-2.19.tar.bz2,编译目录是binutils-2.19_build用到的文件是binutils-2.19.tar.bz2gcc-core-4.3.2.tar.bz2gcc-g++-4.3.2.tar.bz2mpfr-2.3.2.tar.bz2gmp-4.2.4.tar.bz2linux-2.6.28.tar.bz2glibc-ports-2.7.tar.bz2glibc-2.7.tar.bz2首先创建目录>mkdir cross_source>mkdir cross_build>cd cross_build1编译,安装binutilsbinutils的配置和编译安装,binutils的编译一般不会遇到什么问题,至少我没有遇到。
>sudo apt-get install texinfo>tar -jxvf ../cross_source/binutils-2.19.tar.bz2根据[Bug gas/7026] New: ARM target wont build, error: format not a string literal and no format arguments,修改tc-arm.c>mkdir binutils-2.19_build>cd binutils-2.19_build>../binutils-2.19/configure --target=arm-linux --prefix=/usr/local/arm/4.3.2 >make>sudo make all install这就会把binutils的编译结果安装到/usr/local/arm/4.3.2/里binutils安装后需要把路径导出。
Linux离线(手动)升级GCC
Linux离线(手动)升级GCC本文介绍在系统无法连接互联网的情况下,如何升级GCC。
离线和在线升级的主要区别在于,如果可以联网,在升级gcc前的需要安装的依赖包,可以通过运行gcc安装包下的脚本自行下载安装,免去了很多的麻烦。
当前系统及GCC版本OS:Red Hat 6.3GCC:4.4.6首先下载gcc安装包,本文为gcc-4.8.5.tar.gz,解压后,如果直接运行安装目录下的configure脚本,可能会因为当前系统的GMP,MPFR,MPC的版本过低而抛出如下的错误:...configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.•1•2如果是在联网环境,可以运行安装目录下的”./contrib/download_prerequisites”脚本来下载相关的依赖。
而由于我们是在局域网内,所以需要到因特网中下载这三个安装包,然后逐个安装:•gmp: 安装包下载路径ftp:///gnu/gmp/•mpfr:安装包下载路径•mpc: 安装包下载路径•此处使用的安装包为gcc-4.8.5.tar.gz,gmp-5.0.5.tar.bz2,mpfr-3.0.1.tar.gz,mpc-1.0.1.tar.gz.安装gmpGMP是一个任意精度的开源算术库,可用于符号整数,有理数,浮点数计算。
# tar -jxvf gmp-5.0.5.tar.bz2# cd gmp-5.0.5# ./configure# make & make check# make install•1•2•3•4•5安装mpfrmpfr主要为提供C/C++多精度浮点运算。
# tar -zxvf mpfr-3.0.1.tar.gz# cd mpfr-3.0.1# ./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib# make & make check# make install•1•2•3•4•5安装mpcGnu Mpc为C/C++提供高精度,正确舍入的复数计算。
arm-linux-gcc交叉工具链的安装和使用
arm-linux-gcc交叉工具链的安装和使用分类:linux内核工具使用2013-01-18 01:01 2295人阅读评论(0) 收藏举报1、安装arm-linux-gcc交叉工具链[root@localhost Denny]# lsarm-linux-gcc-4.3.2.tgz Desktop gcc kernel modules shell实验 smb.conf tftp安装包 wireshark软件包at_remind.c file gdb makefiles samba安装包 smb test wireless[root@localhost Denny]# tar zxvf arm-linux-gcc-4.3.2.tgz-C / // -C 参数指的是解压到根目录下面[root@localhost /]# cd /usr/local/[root@localhost local]# lsarm bin etc games include lib libexec sbin share src[root@localhost local]# cd arm/4.3.2/arm-none-linux-gnueabi/bin/ lib/ libexec/ share/[root@localhost local]# cd arm/4.3.2/bin/ // 安装在 /usr/local/arm/4.3.2/bin/ 的“bin”目录下面[root@localhost bin]#[root@localhost bin]# /usr/local/arm/4.3.2/bin/arm-linux-gcc // arm-linux-gcc 使用方法1:跟上“全路径”[[root@localhost bin]# echo $PATH/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bi n:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin[root@localhost bin]# export $PATHbash: export:`/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/b in:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin': not a valid identifier[root@localhost bin]# vi /etc/proprofile profile.d/ protocols[root@localhost bin]# vi /etc/profile // arm-linux-gcc 使用方法2:添加路径到环境变量中去,在系统的时候就可以“任何地方”使用 arm-linux-gcc[root@localhost bin]## Path manipulationif [ "$EUID" = "0" ]; thenpathmunge /sbinpathmunge /usr/sbinpathmunge /usr/local/sbinpathmunge /usr/local/arm/4.3.2/bin //环境变量添加的位置fi[root@localhost file]# cat hello.c#include <stdio.h>int main(){char *p="hello world!!";printf("%s:",*p); // 错误:字符串的输出 printf("%s:",p); 不用加*p(字符串指针),和其他指针不同return 0;}[root@localhost file]# vi hello.c[root@localhost file]# gcc hello.c -o hello // x86编译方式[root@localhost file]# ./hello // 在x86上能够运行hello world!!:[root@localhost file]# arm-linux-gcarm-linux-gcc arm-linux-gcc-4.3.2 arm-linux-gcov[root@localhost file]# arm-linux-gcc hello.c -o hello1 // ARM编译方式[root@localhost file]# lsfork hello hello1 hello.c lib_file sys_file time_file[root@localhost file]# ./hello1 // 在x86上不能够运行bash: ./hello1: cannot execute binary file[root@localhost file]#2、arm-linux-gcc交叉编译工具的使用今晚用了:arm-linux-objdump -S -D hello 反汇编指令时,遇到以下提示的错误:arm-linux-objdump: Can't disassemble for architecture UNKNOWN!现在还不知道是什么错误引起的,等着明天再解决了!!!!!!!原因是:由于上面用了“gcc hello.c -o hello x86编译方式” 和“arm-linux-gcc hello.c -o hello1 ARM编译方式”产生了hello 和hello1 对应不同平台的文件,当然用“arm-linux-objdump -S -D hello”用arm反汇编指令对x86平台产生的bin文件进行反汇编,肯定出现错误(1)、反汇编arm-linux-objdump 使用[root@localhost file]arm-linux-objdump -S -D helloarm-linux-objdump: Can't disassemble for architecture UNKNOWN![root@localhost file]# lsfork hello hello1 hello.c lib_file sys_file time_file // hello 是x86编译出来的,hello1是arm编译出来的[root@localhost file]# arm-linux-gcc -g hello.c -o hello1 // -g编译产生带有调试的信息的文件(反汇编后:c语言才能和汇编语言对应上)[root@localhost file]# arm-linux-objdump -D -S hello1 >log[root@localhost file]# lsfork hello hello1 hello.c lib_file log sys_file time_file[root@localhost file]# vi log // 查看对应的文件如下00008380 <main>:#include <stdio.h>int main(){8380: e92d4800 push {fp, lr}8384: e28db004 add fp, sp, #4 ; 0x48388: e24dd008 sub sp, sp, #8 ; 0x8char *p="hello world!!";838c: e59f3020 ldr r3, [pc, #32] ; 83b4 <main+0x34>8390: e50b3008 str r3, [fp, #-8]printf("%s:",p);8394: e59f001c ldr r0, [pc, #28] ; 83b8 <main+0x38>8398: e51b1008 ldr r1, [fp, #-8]839c: ebffffc7 bl 82c0 <_init+0x48>return 0;83a0: e3a03000 mov r3, #0 ; 0x0}(2)arm-linux-readelf 文件查看工具[root@localhost file]# arm-linux-readelf -a hello1 >logELF Header: //主要查看这个头文件Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00Class: ELF32Data: 2's complement, little endian //采用的是小端模式(程序运行不起来,硬件平台是打断格式,交叉工具链是小端格式)Version: 1 (current)OS/ABI: UNIX - System VABI Version: 0Type: EXEC (Executable file)Machine: ARM //程序运行在ARM平台上Version: 0x1Entry point address: 0x82ccStart of program headers: 52 (bytes into file)Start of section headers: 2488 (bytes into file)Flags: 0x5000002, has entry point, Version5 EABISize of this header: 52 (bytes)Size of program headers: 32 (bytes)Number of program headers: 8Size of section headers: 40 (bytes)Number of section headers: 37Section header string table index: 34[root@localhost file]# arm-linux-readelf -d hello1 // -d 指的是查看程序所用的共享链接库Dynamic section at offset 0x470 contains 24 entries:Tag Type Name/Value0x00000001 (NEEDED) Shared library: [libc.so.6] // 程序所用到的共享链接库(程序运行不起来,可能找不到共享链接库,把所需要的库考到路径下)0x0000000c (INIT) 0x82780x0000000d (FINI) 0x84340x00000019 (INIT_ARRAY) 0x104640x0000001b (INIT_ARRAYSZ) 4 (bytes)0x0000001a (FINI_ARRAY) 0x104680x0000001c (FINI_ARRAYSZ) 4 (bytes)。
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系统如何安装软件(详细文字教程)
linux系统如何安装软件 (详细文字教程)在Linux中安装软件时,我们经常要考虑到这样几个个问题:(1).怎样安装软件;(2).软件安装在什么地方;(3).如何卸载删除不要的软件......下面,我们就一起来认识一下这些方面的问题。
一.认识Linu x应用软件安装包通常Linu x应用软件的安装包有三种:1) tar包,如softw are-1.2.3-1.tar.gz。
它是使用UN IX系统的打包工具t ar打包的。
2) rpm包,如softw are-1.2.3-1.i386.rpm。
它是Redh at Linux提供的一种包封装格式。
(现在用的全称叫RPMPackag e Manage r,以前叫Red hat Packag e Manage r)3) dpkg包,如softw are-1.2.3-1.deb。
它是Deba in Linux提供的一种包封装格式。
而且,大多数Lin ux应用软件包的命名也有一定的规律,它遵循:名称-版本-修正版-类型例如:1) softwa re-1.2.3-1.tar.gz 意味着:软件名称:softwa re版本号:1.2.3修正版本:1类型:tar.gz,说明是一个t ar包。
2) sfotwa re-1.2.3-1.i386.rpm软件名称:softwa re版本号:1.2.3修正版本:1可用平台:i386,适用于Int el 80x86平台。
类型:rpm,说明是一个r pm包。
注:由于rpm格式的通常是已编译的程序,所以需指明平台。
在后面会详细说明。
而softw are-1.2.3-1.deb就不用再说了吧!大家自己练习一下。
二、了解包里的内容:一个Linu x应用程序的软件包中可以包含两种不同的内容:1) 一种就是可执行文件,也就是解开包后就可以直接运行的。
RedHat RHEL 6安装gcc的方法
RedHat RHEL 6.4安装gcc的方法[zhoucanji@zhoucanji-pc 桌面]$ su root密码:[root@zhoucanji-pc 桌面]# mount -t iso9660 /dev/cdrom /mnt/cdrom/mount: block device /dev/sr0 is write-protected, mounting read-onlymount: /dev/sr0 already mounted or /mnt/cdrom/ busymount: according to mtab, /dev/sr0 is already mounted on /mnt/cdrom[root@zhoucanji-pc 桌面]# cd /mnt/cdrom/Packages/[root@zhoucanji-pc Packages]# rpm -ivh glibc-common-2.12-1.47.el6.i686.rpmwarning: glibc-common-2.12-1.47.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] package glibc-common-2.12-1.47.el6.i686 is already installed[root@zhoucanji-pc Packages]# rpm -ivh kernel-headers-2.6.32-220.el6.i686.rpmwarning: kernel-headers-2.6.32-220.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:kernel-headers ########################################### [100%] [root@zhoucanji-pc Packages]# rpm -ivh libgcc-4.4.6-3.el6.i686.rpmwarning: libgcc-4.4.6-3.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] package libgcc-4.4.6-3.el6.i686 is already installed[root@zhoucanji-pc Packages]# rpm -ivh glibc-2.12-1.47.el6.i686.rpmwarning: glibc-2.12-1.47.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] package glibc-2.12-1.47.el6.i686 is already installed[root@zhoucanji-pc Packages]# rpm ivh libgomp-4.4.6-3.el6.i686.rpmRPM version 4.8.0Copyright (C) 1998-2002 - Red Hat, Inc.This program may be freely redistributed under the terms of the GNU GPL用法: rpm [-aKfgpWHqVcdilsKiv?] [-a|--all] [-f|--file] [-g|--group][-p|--package] [-W|--ftswalk] [--pkgid] [--hdrid] [--fileid][--specfile] [--triggeredby] [--whatrequires] [--whatprovides][--nomanifest] [-c|--configfiles] [-d|--docfiles] [--dump] [-l|--list][--queryformat=QUERYFORMA T] [-s|--state] [--nofiledigest] [--nomd5][--nofiles] [--nodeps] [--noscript] [--comfollow] [--logical][--nochdir] [--nostat] [--physical] [--seedot] [--xdev][--whiteout] [--addsign] [-K|--checksig] [--delsign] [--import][--resign] [--nodigest] [--nosignature] [--initdb] [--rebuilddb][--aid] [--allfiles] [--allmatches] [--badreloc][-e|--erase <package>+] [--excludedocs] [--excludepath=<path>][--fileconflicts] [--force] [-F|--freshen <packagefile>+] [-h|--hash][--ignorearch] [--ignoreos] [--ignoresize] [-i|--install] [--justdb][--nodeps] [--nofiledigest] [--nomd5] [--nocontexts] [--noorder][--nosuggest] [--noscripts] [--notriggers] [--oldpackage][--percent] [--prefix=<dir>] [--relocate=<old>=<new>][--replacefiles] [--replacepkgs] [--test][-U|--upgrade <packagefile>+] [--quiet] [-D|--define 'MACRO EXPR'][-E|--eval 'EXPR'] [--macros=<FILE:...>] [--nodigest] [--nosignature][--rcfile=<FILE:...>] [-r|--root ROOT] [--querytags] [--showrc][--quiet] [-v|--verbose] [--version] [-?|--help] [--usage][--scripts] [--setperms] [--setugids] [--conflicts] [--obsoletes][--provides] [--requires] [--info] [--changelog] [--xml][--triggers] [--last] [--dupes] [--filesbypkg] [--fileclass][--filecolor] [--fscontext] [--fileprovide] [--filerequire][--filecaps][root@zhoucanji-pc Packages]# rpm -ivh nscd-2.12-1.47.el6.i686.rpmwarning: nscd-2.12-1.47.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:nscd ########################################### [100%] [root@zhoucanji-pc Packages]# rpm -ivh glibc-headers-2.12-1.47.el6.i686.rpmwarning: glibc-headers-2.12-1.47.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:glibc-headers ########################################### [100%] [root@zhoucanji-pc Packages]# rpm -ivh glibc-devel-2.12-1.47.el6.i686.rpmwarning: glibc-devel-2.12-1.47.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:glibc-devel ########################################### [100%] [root@zhoucanji-pc Packages]# rpm -ivh mpfr-2.4.1-6.el6.i686.rpmwarning: mpfr-2.4.1-6.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:mpfr ########################################### [100%] [root@zhoucanji-pc Packages]# rpm -ivh ppl-0.10.2-11.el6.i686.rpmwarning: ppl-0.10.2-11.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:ppl ########################################### [100%] [root@zhoucanji-pc Packages]# rpm -ivh cloog-ppl-0.15.7-1.2.el6.i686.rpmwarning: cloog-ppl-0.15.7-1.2.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:cloog-ppl ########################################### [100%] [root@zhoucanji-pc Packages]# rpm -ivh cpp-4.4.6-3.el6.i686.rpmwarning: cpp-4.4.6-3.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:cpp ########################################### [100%] [root@zhoucanji-pc Packages]# rpm -ivh gcc-4.4.6-3.el6.i686.rpmwarning: gcc-4.4.6-3.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:gcc ########################################### [100%] [root@zhoucanji-pc Packages]# which gcc/usr/bin/gcc[root@zhoucanji-pc Packages]#注:以上是安装gcc,软件安装顺序不能错.[root@zhoucanji-pc Packages]# rpm -ivh libstdc++-4.4.6-3.el6.i686.rpmwarning: libstdc++-4.4.6-3.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] package libstdc++-4.4.6-3.el6.i686 is already installed[root@zhoucanji-pc Packages]# rpm -ivh libstdc++-devel-4.4.6-3.el6.i686.rpm warning: libstdc++-devel-4.4.6-3.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:libstdc++-devel ########################################### [100%] [root@zhoucanji-pc Packages]# rpm -ivh gcc-c++-4.4.6-3.el6.i686.rpmwarning: gcc-c++-4.4.6-3.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:gcc-c++ ########################################### [100%]注:以上是安装gcc-c++。
linux系统中如何安装程序软件方法有哪些
linux系统中如何安装程序软件方法有哪些Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
对于安装程序软件方法,Linux系统和Windows相比相对复杂一点,这篇文章主要介绍了linux系统中如何安装程序、软件的几种方法,需要的朋友可以参考下一、二进制分发软件包的安装与卸载Linux软件的二进制分发是指事先已经编译好二进制形式的软件包的发布形式,其优点是安装使用容易,缺点则是缺乏灵活性,如果该软件包是为特定的硬件/操作系统平台编译的,那它就不能在另外的平台或环境下正确执行。
1、*.rpm形式的二进制软件包安装:rpm -ivh *.rpm卸载:rpm -e packgename说明:RPM(RedHat Packge Manager)是RedHat公司出的软件包管理器,使用它可以很容易地对rpm形式的软件包进行安装、升级、卸载、验证、查询等操作,安装简单,而卸载时也可以将软件安装在多处目录中的文件删除干净,因此推荐初学者尽可能使用rpm形式的软件包。
rpm的参数中-i是安装,-v是校验,-h是用散列符显示安装进度,*.rpm是软件包的文件名(这里的*.rpm特指*.src.rpm以外的以rpm为后缀的文件);参数-e是删除软件包,packgename是软件包名,与软件包的文件名有所区别,它往往是文件名中位于版本号前面的字符串,例如apache-3.1.12-i386.rpm和apache-devel-3.1.12-i386.rpm是软件包文件名,它们的软件包名称分别是apache和apache-devel。
更多的rpm参数请自行参看手册页:man rpm。
如果你不喜欢在字符界面下安装或卸载这些软件包,完全可以在X-Window下使用图形界面的软件包管理程序,如glint、xrpm这样的图形接口,或者是KDE的kpackge等,这样对软件包的安装、升级、卸载、验证和查询就可以通过点击鼠标来轻松完成。
搭建arm-linux-gcc-4.6.1
Ubuntu11.04中搭建交叉编译环境(arm-linux-gcc-4.6.1版本)声明:本文主要参考/xt_xiaotian/article/details/6836739,并根据实际情况作了一定的修改与说明编译环境:内核名称:Linux内核发行版:2.6.38-11-generic内核版本:#50-Ubuntu SMP Mon Sep 12 21:18:14 UTC 2011硬件架构名称:i686硬件平台:i386操作系统:GNU/Linux当前系统gcc版本号:4.5.2在Linux中建立整个ARM交叉编译环境的整体过程为:1、下载源码包2、建立编译目录并设置环境变量3、安装内核头文件4、安装二进制工具(binutils)5、建立初始编译器工具链(简版gcc)6、建立glibc库7、建立全套编译器工具链(full gcc)8、验证一、下载源码包GNU的所有源码文件都可以到这个地址下载:/gnu/Linux Kernel源代码可以去这里下载:mpc可以去这里下载:下载的源码包如下:binutils-2.21.1.tar.bz2gcc-4.6.1.tar.gzglibc-2.14.tar.gzglibc-linuxthreads-2.5.tar.bz2glibc-ports-2.13.tar.gzgmp-5.0.2.tar.bz2linux-2.6.32.45.tar.gzmpc-0.9.tar.gzmpfr-2.4.2.tar.gz注:mpfr不建议使用3.0.0版本。
mpfr-3.0.0有Bug,会导致gcc编译不过。
二、建立编译目录并设置环境变量选定自己的工作目录,如我选择/opt/embedded作为自己的工作目录。
然后再embedded 中建立build-tools、kernel、tools三个文件夹。
实例:root@ubuntu:/opt/ming# cd /opt/root@ubuntu:/opt# mkdir embeddedroot@ubuntu:/opt# cd embedded/root@ubuntu:/opt/embedded# mkdir build-tools kernel toolsroot@ubuntu:/opt/embedded# cd build-tools/root@ubuntu:/opt/embedded/build-tools# mkdir build-binutils build-boot-gcc build-glibc build-gcc各文件夹的作用如下:/opt/embedded:交叉编译环境的主目录/opt/embedded/build-tools:存放binutils、gcc、glibc等GNU源码和用来编译这些源代码的目录/opt/embedded/kernel:用来存放Linux内核源代码/opt/embedded/tools:用来存放编译好的交叉编译工具和库文件/opt/embedded/build-tools/build-binutils:编译binutils的目录/opt/embedded/build-tools/build-boot-gcc:编译gcc启动部分的目录/opt/embedded/build-tools/build-glibc:编译glibc的目录/opt/embedded/build-tools/build-gcc:编译整个gcc的目录建立好编译目录之后便是设置环境变量(建议直接在~/.bashrc中修改,注意修改之后要重新运行Terminal)。
详解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安装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指定系统上的编译器。
安装GCC-4.6.1详细教程
安装GCC-4.6.1详细教程一、什么是GccLinux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。
gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。
在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。
二、gcc所遵循的部分约定规则前面提到便宜的后缀问题,而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc 所遵循的部分约定规则。
.c为后缀的文件,C语言源代码文件;.a为后缀的文件,是由目标文件构成的档案库文件;.C或.cc或.cxx为后缀的文件,是C++源代码文件;.h为后缀的文件,是程序所包含的头文件;.i为后缀的文件,是已经预处理过的C源代码文件;.ii为后缀的文件,是已经预处理过的C++源代码文件;.m为后缀的文件,是Objective-C源代码文件;.o为后缀的文件,是编译后的目标文件;.s为后缀的文件,是汇编语言源代码文件;.S为后缀的文件,是经过预编译的汇编语言源代码文件。
三、Gcc的执行过程虽然我们称Gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。
●命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。
●接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。
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. 分别编译各个源文件,之后对编译后输出的目标文件链接。
Linux安装gcc时碰到的有关问题解决(解决gcc依赖有关问题)
Linux安装gcc时碰到的有关问题解决(解决gcc依赖有关问题)Linux安装gcc时碰到的有关问题解决(解决gcc依赖有关问题)rpm安装gcc时碰到的有关问题解决(解决gcc依赖有关问题)提⽰:error: Failed dependencies:cloog-ppl >= 0.15 is needed by gcc-4.4.7-4.el6.x86_64cpp = 4.4.7-4.el6 is needed by gcc-4.4.7-4.el6.x86_64rpm安装cloog-ppl会报:error: Failed dependencies:libppl.so.7()(64bit) is needed by cloog-ppl-0.15.7-1.2.el6.x86_64libppl_c.so.2()(64bit) is needed by cloog-ppl-0.15.7-1.2.el6.x86_64rpm安装cpp会报:error: Failed dependencies:libmpfr.so.1()(64bit) is needed by cpp-4.4.7-4.el6.x86_64安装软件包前期准备⼯作:1.挂载光盘镜像到mnt⽬录下。
(学习推荐),下⾯说说挂载命令[root@localhost ~]# mount /dev/cdrom /mnt/[root@localhost Packages]#挂载成功后,进⼊到包所在⽬录[root@localhost ~]# cd /mnt/Packages/[root@localhost Packages]#2.⽹上去下载需要安装的包。
在安装gcc时我们基本都会碰到这样的错误提⽰:1》安装gcc包,并报错了:[root@localhost Packages]# rpm -ivh gcc-4.4.7-4.el6.x86_64.rpmwarning: gcc-4.4.7-4.el6.x86_64.rpm: Header V3 RSA/SHA1Signature, key ID c105b9de: NOKEYerror: Failed dependencies:cloog-ppl >= 0.15 is needed by gcc-4.4.7-4.el6.x86_64cpp = 4.4.7-4.el6 is needed by gcc-4.4.7-4.el6.x86_64[root@localhost Packages]#上⾯的报错说明:缺少两个依赖关系包(cloog-ppl和cpp),那么我们只需要安装这两个包就⾏了。
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,提示找不到这个命令。