gcc安装方法

gcc安装方法
gcc安装方法

gcc安装方法made by chen

1.先从群上下载arm-linux-gcc-4.3.

2.tgz

2.将文件转移到虚拟机最方便的方法是用优盘现在win的环境下拷入,再在ubuntu环境

下拷出,拷到目录home根目录下

3.在ubuntu,按win键,在搜索框打入t,第一个就是命令行程序,打开终端

4.输入sudo su 进入超级用户root

5.在终端输入解压命令tar -xvzf arm-linux-gcc-4.3.2.tgz -C / (大写C)

6.配置下编译环境路径在控制台下输入gedit /root/.bashrc 等一会出来文本

编辑器后在文件最后(最后一行)加上下面代码

export PATH=/usr/local/arm/4.3.2/bin:$PATH

7.保存关闭后,注销当前用户,用root账号重新登录系统(使刚刚添加的环境

变量生效)

8.此时你可以在控制台输入:arm-linux-gcc -v 如果安装成功将会输出

arm-linux-gcc的版本号

gcc编译器使用简明指南

gcc编译器使用简明指南 gcc对文件的处理需要经过预处理->编译->汇编->链接的步骤,从而产生一个可执行文件,各部分对应不同的文件类型,具体如下: file.c c程序源文件 file.i c程序预处理后文件 file.cxx c++程序源文件,也可以是https://www.360docs.net/doc/2f13724691.html, / file.cpp / file.c++ file.ii c++程序预处理后文件 file.h c/c++头文件 file.s 汇编程序文件 file.o 目标代码文件 gcc [选项]文件列表 -ansi 强制完全ANSI一致 -c 仅编译或汇编,生成目标代码文件,将.c、.i、.s等文件生成.o文件,其余文件被忽略 -S 仅编译,不进行汇编和链接,将.c、.i等文件生成.s文件,其余文件被忽略 -E 仅预处理,并发送预处理后的.i文件到标准输出,其余文件被忽略 -o file 创建可执行文件并保存在file中,而不是默认文件a.out -g 产生用于调试和排错的扩展符号表,用于GDB调试,切记-g和-O通常不能一起使用 -w 取消所有警告 -W 给出更详细的警告 -O [num]优化,可以指定0-3作为优化级别,级别0表示没有优化 -x language 默认为-x none,即依靠后缀名确定文件类型,加上-x lan确定后面所有文件类型,直到下一个-x出现为止 -D macro[=]类似于源程序里的#define,在-D macro中的macro可被源程序识别,例如gcc -D NUM -D FILE=\"bbs.txt\" hello.c -o hello,第一个-D选项定义宏NUM,在程序中可以使用#ifdef来检查是否被设置,第二个-D定义宏FILE,在源程序中可用 -U macro 类似于源程序开头定义#undef macro,也就是取消源程序中的某个宏定义

常见gcc 编译错误整理

常见gcc 编译错误整理(开始)1 1 error: expected expression before 'else' else之前无表达式。 2 error: lvalue required as left operand of assignment 左值问题。 3 error: invalid storage class for function 'XXXXXX' 在文件的某个地方,丢失了一个大括号‘}’。 常见gcc编译警告整理(开始) 1、warning: no newline at end of file 在文件最后一行加上回车键 解释:在《Rationale for the C99 standard》一文中,有C99的相关信息: A backslash immediately before a newline has long been used to continue string literals, as well as preprocessing command lines. In the interest of easing machine generation of C, and of transporting code to machines with restrictive physical line lengths, the C89 Committee generalized this mechanism to permit any token to be continued by interposing a backslash/newline sequence. c/c++代码的每一行后面有一个“结束符”,也就是newline。避免当被include的文件展开后,前一个文件的最后一行与后一个文件的第一行直接被连接成一行从而造成错误。 2、warning: comparison between pointer and integer 解释:integer与pointer比较

gcc编译器的下载和安装教程_华清远见

gcc编译器的下载和安装教程 今天分享的教程是gcc编译器的下载和安装教程,大家可以跟着教程一起来实现他! Linux下变成的源码要运行,必须先转成二进制的机器码。此时就需要编译器,Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。 Gcc编译器能将C、C++语言源程序通过编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。 比如,下面这段源码(文件名叫做test.c)。 #include int main(void) { printf("Hello, world!\n"); return 0; } 编译则使用gcc命令,gcc命令提供了非常多的命令选项。 一. 常用编译命令选项 假设源程序文件名为test.c。 1. 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out,如果需要执行,内核中必须支持该文件的格式,默认一般都是elf可执行程序 2. 选项 -o 用法:#gcc test.c -o test 作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。 3. 选项 -E

用法:#gcc -E test.c -o test.i 作用:将test.c预处理输出test.i文件,预处理其实就是处理#预处理符号,比如#include, #define, #if, #ifdef, #error等 4. 选项 -S 用法:#gcc -S test.i 作用:将预处理输出文件test.i汇编成test.s文件。汇编语言对应汇编指令,默认gcc编译成x86指令,如果需要编译arm架构的,就必须使用交叉工具链 5. 选项 -c 用法:#gcc -c test.s 作用:将汇编输出文件test.s编译输出test.o文件,二进制文件就是101010机器码 6. 无选项链接 用法:#gcc test.o -o test 作用:将编译输出文件test.o链接成最终可执行文件test。 如果需要修改Ubuntu的gcc版本,可以看一下你的Ubuntu安装了哪些版本的gcc 用命令:ls /usr/bin/gcc* -l 显示是 lrwxrwxrwx 1 root root 7 2017-08-14 15:17 /usr/bin/gcc -> gcc-4.6 -rwxr-xr-x 1 root root 302104 2017-09-17 05:43 /usr/bin/gcc-4.6 由上面显示可以看出默认安装的是gcc-4.6,现在来改成gcc-4.7 $ sudo apt-get install gcc-4.7 $ sudo apt-get install g++-4.7 删除gcc-4.6的软连接文件/usr/bin/gcc。(只是删除软连接) 命令:sudo rm /usr/bin/gcc 然后建一个软连接,指向gcc-4.7。 命令:sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc 然后可以通过命令:gcc -v 查看版本

Object-C 经典入门教程

Object-C 入门教程 分类:Sip&asterisk2009-05-04 16:34 16409人阅读评论(2) 收藏举报大纲 o开始吧下载这篇教学 o设定环境 o前言 o编译 hello world o创建 Classes@interface o@implementation o把它们凑在一起 o详细说明...多重参数 o建构子(Constructors) o访问权限 o Class level access o异常情况(Exceptions)处理 o继承、多型(Inheritance, Polymorphism)以及其他面向对象功 能id 型别 o继承(Inheritance) o动态识别(Dynamic types) o Categories o Posing o Protocols o内存管理Retain and Release(保留与释放) o Dealloc o Autorelease Pool o Foundation Framework ClassesNSArray o NSDictionary ?优点与缺点 ?更多信息 开始吧 下载这篇教学 ?所有这篇初学者指南的原始码都可以由objc.tar.gz下 载。这篇教学中的许多范例都是由 Steve Kochan 在 Programming in Objective-C. 一书中撰写。如果你想得到更 多详细信息及范例,请直接参考该书。这个网站上登载的所有 范例皆经过他的允许,所以请勿复制转载。 设定环境 ?Linux/FreeBSD: 安装GNUStep为了编译 GNUstep

应用程序,必须先执行位于 /usr/GNUstep/System/Makefiles/GNUstep.sh 的 GNUstep.sh 这个档案。这个路径取决于你的系统环境, 有些是在 /usr, some /usr/lib,有些是/usr/local。 如果你的 shell 是以 csh/tcsh 为基础的 shell,则应 该改用 GNUStep.csh。建议把这个指令放在 .bashrc 或 .cshrc 中。 ?Mac OS X: 安装XCode ?Windows NT 5.X: 安装cygwin或mingw,然后安装 GNUStep 前言 ?这篇教学假设你已经有一些基本的 C 语言知识,包括 C 数 据型别、什么是函式、什么是回传值、关于指针的知识以及基 本的 C 语言内存管理。如果您没有这些背景知识,我非常建议 你读一读 K&R 的书:The C Programming Language(译注:台 湾出版书名为 C 程序语言第二版)这是 C 语言的设计者所写 的书。 ?Objective-C,是 C 的衍生语言,继承了所有 C 语言的特 性。是有一些例外,但是它们不是继承于 C 的语言特性本身。 ?nil:在 C/C++ 你或许曾使用过 NULL,而在 Objective-C 中则是 nil。不同之处是你可以传递讯息给 nil(例如 [nil message];),这是完全合法的,然而你却不能对 NULL 如法炮 制。 ?BOOL:C 没有正式的布尔型别,而在 Objective-C 中也不 是「真的」有。它是包含在 Foundation classes(基本类别库) 中(即 import NSObject.h;nil 也是包括在这个头文件内)。 BOOL 在 Objective-C 中有两种型态:YES 或 NO,而不是 TRUE 或 FALSE。 ?#import vs #include:就如同你在 hello world 范例中看 到的,我们使用了#import。#import 由 gcc 编译程序支援。 我并不建议使用 #include,#import基本上跟 .h 档头尾的 #ifndef #define #endif 相同。许多程序员们都同意,使用这 些东西这是十分愚蠢的。无论如何,使用 #import 就对了。这 样不但可以避免麻烦,而且万一有一天 gcc 把它拿掉了,将会 有足够的 Objective-C 程序员可以坚持保留它或是将它放回 来。偷偷告诉你,Apple 在它们官方的程序代码中也使用了 #import。所以万一有一天这种事真的发生,不难预料 Apple 将 会提供一个支持 #import 的 gcc 分支版本。 ?在 Objective-C 中, method 及 message 这两个字是可以 互换的。不过messages 拥有特别的特性,一个 message 可以 动态的转送给另一个对象。在Objective-C 中,呼叫对象上的 一个讯息并不一定表示对象真的会实作这个讯息,而是对象知 道如何以某种方式去实作它,或是转送给知道如何实作的对象。

gcc语言编译原理_CompilingBinaryFilesUsingACompiler

Making plain binary?les using a C compiler(i386+) Cornelis Frank April10,2000 I wrote this article because there isn’t much information on the Internet concerning this topic and I needed this for the EduOS project. No liability is assumed for incidental or consequential damages in connection with or arising out of use of the information or programs contained herein. So if you blow up your computer because of my bad“English”that’s your problem not mine. 1Which tools do you need? An i386PC or higher. A Linux distribution like Red Hat or Slackware. GNU GCC compiler.This C compiler usually comes with Linux.To check if you’re having GCC type the following at the prompt: gcc--version This should give an output like: 2.7.2.3 The number probably will not match the above one,but that doesn’t really matter. The binutils for Linux. NASM Version0.97or higher.The Netwide Assembler,NASM,is an80x86assembler designed for portability and modularity.It supports a range of object?le formats,including Linux‘a.out’and ELF,NetBSD/FreeBSD,COFF,Microsoft16-bit OBJ and Win32.It will also output plain binary?les.Its syntax is designed to be simple and easy to understand, similar to Intel’s but less complex.It supports Pentium,P6and MMX opcodes,and has macro capability. Normally you don’t have NASM on your system.Download it from: https://www.360docs.net/doc/2f13724691.html,/pub/Linux/devel/lang/assemblers/ A text editor like pico or emacs.

linux下安装gcc、g++开发环境

一、ubuntu下gcc/g++/gfortran的安装 1.安装 (1).gcc ubuntu下自带gcc编译器。可以通过“gcc -v”命令来查看是否安装。 (2).g++ 安装g++编译器,可以通过命令“sudo apt-get install build-essential”实现。 执行完后,就完成了gcc,g++,make的安装。build-essential是一整套工具,gcc,libc等等。通过“g++ -v”可以查看g++是否安装成功。 注:“sudo apt-get install build-essential --fix-missing”,这个命令是修补安装build-essential,即已安装了部分build-essential,但没有安装完全,此时可以使用该命令继续安装 build-essential。 (3).gfortran 输入命令:sudo apt-get install gfortran 通过命令“gfortran -v”,可以查看gfortran是否安装成功。 2.通过apt-get install安装软件后,软件的安装目录 1.通过apt-get install 命令安装了一些软件,但这些软件的源码以及那些安装完以后的文件放在哪个文件夹下面? 可以通过以下两种方式查看: (1).在terminal中输入命令:dpkg -L 软件名 eg:dpkg -L gcc dpkg -L gcc-4.4 dpkg -L g++

dpkg -L g++-4.4 (2).在新立得中搜索到你已经安装的软件包,选中点属性(或右键),点属性对话框中的“已安装的文件”即可看到。 二.CentOS下gcc/g++/gfortran的安装 1.安装 再ubuntu下直接apt-get install gcc g++就可以了。按照类似的逻辑,再CentOS下yum install gcc g++ 报告无法找到g++包。查了一下,原来这个包的名字叫做gcc-c++。完整的应该是yum installgcc gcc-c++ (1)gcc 命令:yum install gcc (2)g++/gfortran 命令:yum install gcc-c++ 执行完该命令后,g++/gfortran都被安装上了。

非root权限安装gcc

非root权限安装gcc详细教程 安装依赖库: GCC依赖于gmp 4.2+, mpfr 2.4+和mpc 0.8+,这里先下载安装这几个。 安装gmp 4.3.2: 下载最新版本:https://https://www.360docs.net/doc/2f13724691.html,/download/gmp/ 解压:tar jxvf gmp-4.3.2.tar.bz2 进入目录:cd gmp-4.3.2 配置:./configure --prefix=$HOME/gmp-4.3.2/ 编译:make 安装:make install MFPR3.1.4: mpfr依赖于gmp。 下载:http://mpfr.loria.fr/mpfr-current/ 解压:tar xvf mpfr-3.1.4.tar.bz2 进入目录:cd mpfr-3.1.4 配置:./configure --prefix=$HOME/mpfr-3.1.4 --with-gmp=$HOME/gmp-4.3.2/ 编译:make 安装:make install MPC1.0.3:

mpc依赖于gmp和mpfr。 下载:ftp://https://www.360docs.net/doc/2f13724691.html,/gnu/mpc/ 解压:tar xvf mpc-1.0.3.tar.gz 进入目录:cd mpc-1.0.3 配置:./configure --prefix=$HOME/mpc-1.0.3 --with-mpfr=$HOME/mpfr-3.1.4 --with-gmp=$HOME/gmp-4.3.2 编译:make 安装:make install 在这里我们在配置的时候将安装目录统一指定为$HOME,将程序执行文件,库文件及头文件全部安装在自己的目录下,呵呵,因为没有root。 另外,要及时地更新环境变量的配置,即~/.bashrc,将文件的lib位置写进去。 在安装的过程中,还会有缺少m4、automake、autoconf的情况,这时还要先安装这几个。安装过程与这三个类似,就不详细说了。这些补完,才能顺利来到gcc-5.2.0的安装步骤。 安装gcc-5.2.0: 下载:wget ftp://https://www.360docs.net/doc/2f13724691.html,/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2 解压:tar xvf gcc-5.2.0.tar.bz2 进入目录:cd gcc-5.2.0 先unset若干个系统变量,以免出现某些宏找不到的情况。 unset CPLUS_INCLUDE_PATH LIBRARY_PATH 接下来,配置GCC:

GCC内联汇编入门

GCC内联汇编入门 分类:linux编程2008-12-21 15:48 507人阅读评论(0) 收藏举报 目录(?)[-] 1. 前言 1. 版权与许可证 2. 回馈与更正 3. 感谢 2. 简介 3. GCC汇编语法 4. 基本内联汇编 5. 扩展内联汇编 1. 汇编程序模板 2. 操作数 3. Clobber列表 4. Volatile 6. 更多关于约束条件 1. 常用的约束 2. 约束修饰符 7. 一些有用的诀窍 8. 结束语 9. 参考 原文为GCC-Inline-Assembly-HOWTO,在google上可以找到原文,欢迎指出翻译错误。 中文版说明 由于译者水平有限,故译文出错之处,还请见谅。C语言的关键字不译,一些单词或词组(如colbber等)由于恐怕译后词不达意,故并不翻译,由下面的单词表代为解释,敬请见谅。 英文原文中的单词和词组: operand:操作数,可以是寄存器,内存,立即数。 volatile:易挥发的,是C语言的关键字。 constraint:约束。 register:本文指CPU寄存器。 asm:“asm”和“__asm__”在C语言中是关键字。原文中经常出现这个单词,是指嵌入到C语言(或者其它语言)的汇编程序片断。 basic inline assembly:指C语言中内联汇编程序的一种形式,和extended asm对 应。基本格式如下:

asm("assembly code"); extended assembly:和basic inline assembly对应,比它多了一些特性,如可以指明输入,输出等。基本格式如下: asm ( assembler template : output operands : input operands : list of clobbered registers ); clobber list:实际上就是被使用的寄存器的列表,用来告诉GCC它们已经被asm 使用了,不要在asm程序外使用它们。不然可能带来不可预见的后 果。 clobbered registers:它和clobber list对应。 assembler template:就是汇编模板,所有内联汇编代码都有按一定的格式。 见extended assembly的说明 作者:Sandeep.S 译者:吴遥 版本号 v0.1 2003年3月01日 翻译版更新日期 2008/06/11 这篇HOWTO解释GCC提供的内联汇编特性的用途和用法。学习这篇文章只须具备两个前提条件,显然那就是对x86汇编语言和C语言有基本的了解。 目录 1.前言 1.1版权与许可证 1.2回馈与更正 1.3感谢 2.简介 3.GCC汇编语法 4.基本内联汇编 5.扩展内联汇编 5.1汇编程序模板 5.2操作数 5.3 Clobber列表 5.4 Volatile … ? 6.更多关于约束条件

Linux上安装GCC编译器过程

Linux上安装GCC编译器过程 20日最新版本的GCC编译器3.4.0发布了。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。GCC 3.4.0比以前版本更好地支持了C++标准。本文以在Redhat Linux上安装GCC3.4.0为例,介绍了GCC的安装过程。 安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC 3.4.0。如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。 系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的。与此不同,现在GCC建议我们将一个版本的GCC安装在一个单独的目录下。这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常。在本文中我采用这个方案安装GCC 3.4.0,并且在安装完成后,仍然能够使用原来低版本的GCC编译器,即一个系统上可以同时存在并使用多个版本的GCC编译器。 按照本文提供的步骤和设置选项,即使以前没有安装过GCC,也可以在系统上安装上一个可工作的新版本的GCC编译器。 1. 下载 在GCC网站上(https://www.360docs.net/doc/2f13724691.html,/)或者通过网上搜索可以查找到下载资源。目前GCC的最新版本为 3.4.0。可供下载的文件一般有两种形式:gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。 2. 解压缩 根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符): % tar xzvf gcc-3.4.0.tar.gz 或者 % bzcat gcc-3.4.0.tar.bz2 | tar xvf - 新生成的gcc-3.4.0这个目录被称为源目录,用${srcdir}表示它。以后在出现${srcdir}的地方,应该用真实的路径来替换它。用pwd命令可以查看当前路径。 在${srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏览器打开index.html阅读。 3. 建立目标目录 目标目录(用${objdir}表示)是用来存放编译结果的地方。GCC建议编译后的文件不要放在源目录${srcdir]中(虽然这样做也可以),最好单独存放在另外一个目录中,而且不能是${srcdir}的子目录。 例如,可以这样建立一个叫gcc-build 的目标目录(与源目录${srcdir}是同级目录): % mkdir gcc-build % cd gcc-build 以下的操作主要是在目标目录${objdir} 下进行。 4. 配置 配置的目的是决定将GCC编译器安装到什么地方(${destdir}),支持什么语言以及指定其它一些选项等。其中,${destdir}不能与${objdir}或${srcdir}目录相同。 配置是通过执行${srcdir}下的configure来完成的。其命令格式为(记得用你的真实路径替换${destdir}): % ${srcdir}/configure --prefix=${destdir} [其它选项] 例如,如果想将GCC 3.4.0安装到/usr/local/gcc-3.4.0目录下,则${destdir}就表示这个路径。 在我的机器上,我是这样配置的: % ../gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-threads=posix

常见gcc编译警告整理以及解决方法【收藏】

常见gcc编译警告整理以及解决方法【收藏】 1、warning: no newline at end of file ? ?在文件最后一行加上回车键 ? ?解释:在《Rationale for the C99 standard》一文中,有C99的相关信息: ? ?A backslash immediately before a newline has long been used to continue string literals, as well as preprocessing command lines. In the interest of easing machine generation of C, and of transporting code to machines with restrictive physical line lengths, the C89 Committee generalized this mechanism to permit any token to be continued by interposing a backslash/newline sequence. ? ?c/c++代码的每一行后面有一个结束符,也就是newline。避免当被include 的文件展开后,前一个文件的最后一行与后一个文件的第一行直接被连接成一行从而造成错误。 ? ?2、warning: comparison between pointer and integer ? ?解释:integer与pointer比较 ? ?3、warning: assignment discards qualifiers from pointer target type ?

GCC安装

RedHat5.5 升级安装GCC-4.6.1详细教程 一、什么是Gcc Linux系统下的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为后缀的目标文件。汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。 ●当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。 四、Gcc的基本用法和选项 在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。Gcc编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数 Gcc最基本的用法是∶gcc[options] [filenames] ,其中options就是编译器所需要的参数,filenames给出相关的文件名称。 五、Gcc的参数选项 -c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。 -o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。 -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。

GCC编译选项

Linux中gcc,g++常用编译选项 -x language filename 设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定,C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是. pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用。可以使用的参数有下面的这些: `c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and `a ssembler-with-cpp'. 看到英文,应该可以理解的。 例子用法: cd.. gcc -x c hello.pig -x none filename 关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型 例子用法: gcc -x c hello.pig -x none hello2.c -c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 例子用法: gcc -c hello.c 他将生成.o的obj文件 -S 只激活预处理和编译,就是指把文件编译成为汇编代码。 例子用法 gcc -S hello.c 他将生成.s的汇编代码,你可以用文本编辑器察看 -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面. 例子用法: gcc -E hello.c > pianoapan.txt gcc -E hello.c | more 慢慢看吧,一个hello word 也要预处理成800行的代码 -o 制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果你和我有同感,改掉它,哈哈 例子用法 gcc -o hello.exe hello.c (哦,windows用习惯了) gcc -o hello.asm -S hello.c -pipe 使用管道代替编译中临时文件,在使用非gnu汇编工具的时候,可能有些问题 gcc -pipe -o hello.exe hello.c

linux系统下C编译器GCC入门

linux系统下C编译器— gcc 入门 <一>gcc简介 Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为 a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而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为后缀的目标文件。汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,. S为后缀的汇编语言源代码文件和汇编,.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。 <三>gcc的基本用法和选项 在使用gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。g cc编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数。

CentOS安装gcc

一、CentOS5.2系统安装在虚拟机上,编译gcc. 挂载CentOS的DVD系统光盘,然后进入CentOS目录内,安装顺序如下: rpm -ivh cpp-4.1.2-42.el5.i386.rpm rpm -ihv kernel-headers-2.6.18-92.el5.i386.rpm rpm -ivh glibc-headers-2.5-24.i386.rpm rpm -ivh glibc-devel-2.5-24.i386.rpm rpm -ivh libgomp-4.1.2-42.el5.i386.rpm rpm -ivh gcc-4.1.2-42.el5.i386.rpm 二、下载安装Toolchains。 1. 打开虚拟机进入CentOS, 在root 下进行以下操作,目的是下载一些移植必备的Linux软件开发包。 sudo yum install git-core make gcc ncurses-devel bison byacc flex gawk gettext ccache zlib-devel gtk2-devel lzo-devel 三、在CentOS上安装Git Git是Linux Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git跟Subversion是不同类型的版本控制系统。Git是分布式的,而Subversion是中心式的。在CentOS上安装Git非常方便,可以安装EPEL,这是一个由Fedora 社区打造,由为RHEL 及衍生发行版提供高质量软件的项目,里面有软件还是比较丰富的,默认的没有git。我的CentOS版本是5.2,执行下面命令安装该库: sudo rpm -Uvh https://www.360docs.net/doc/2f13724691.html,/pub/epel/5/i386/epel-release-5-3.noarch.rpm 如果是CentOS 4的话,可以试着执行: rpm -Uvh https://www.360docs.net/doc/2f13724691.html,/pub/epel/4/i386/epel-release-4-9.noarch.rpm 然后就是,sudo yum install git了。 四、然后检查CentOS默认的shell是否为“bash” ls -l /bin/sh 若显示/bin/sh—>bash则正确。 若不是,使用root登陆,命令: sudo rm /bin/sh sudo ln -s bash /bin/sh

linux下编写c源程序并编译运行

姓名:雨田河南大学rjxy 班级:XXXX 实验二Linux基本操作 实验二Linux基本操作 编写c源程序并用编译运行 【需求】 ◆在当前目录下创建新文件t.c,用vi编辑器一段简单代码,代码要求在屏幕上输出 文字“Hello Linux!”; ◆用gcc编译t.c文件,并运行,查看输出结果,若结果错误,请根据提示修改;【系统及软件环境】 操作系统:Virtualbox,Fedora 13 【实验配置文件及命令】 1.配置文件: 2.命令:touch、rpm、gcc、./等

进入Linux操作系统,应用程序-> 系统工具-> 终端,输入命令:su 输入密码切换到root超级用户。 1.在当前目录建立一个新的目录test:$ mkdir test 在test目录下建立文件t.c :$touch t.c 3编辑程序源代码:vi t.c 首先按下键盘的“i”键,字符界面下方出现“insert”提示字符,此时输入以下代码: #include "stdio.h" int main() { printf("Hello Linux!\n"); return 0; } 4 保存退出:先按下“Esc”键,然后按下“shift”和“:”键,界面上出现冒号,然后输入“xq!”或者“x”对代码保存退出。 5 由于系统默认没有安装C语言编译程序,下面进行安装gcc 程序; 此处不再赘述,以下引用实验指导书: 1.gcc的安装 (1)查看gcc是否安装 rpm –q gcc (2)指定安装源 在“系统-分配光驱”里选择“Fedora-13-i386-DVD.iso” (3)查看安装源挂载位置 df命令,可查看到虚拟光驱挂载点 返回结果为:/media/Fedora 13 i386 DVD (4)使用安装源 安装的文件为RPM安装包,所在位置为安装光盘中的“Packages”目录下,可用“cd”命令进入此目录 cd /media/ Fedora 13 i386 DVD/Packages ★由于“Fedora 13 i386 DVD”名字中有空格,若直接输入,则会提示找不到此目录,可用“tab”键自动补全 【方法】cd /media/F)/P() 则可返回如下结果: cd /media/Fedora\ 13\ i386 \DVD\ /Packages (5)查看当前目录下是否有gcc安装包

GCC安装

一个系统中有两个GCC 安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC 3.4.0。如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。本文介绍的是以源代码形式提供的GCC 软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。 系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的。与此不同,现在GCC建议我们将一个版本的GCC安装在一个单独的目录下。这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常。在本文中我采用这个方案安装GCC 3.4.0,并且在安装完成后,仍然能够使用原来低版本的GCC编译器,即一个系统上可以同时存在并使用多个版本的GCC编译器。 按照本文提供的步骤和设置选项,即使以前没有安装过GCC,也可以在系统上安装上一个可工作的新版本的GCC编译器。 1. 下载 在GCC网站上(https://www.360docs.net/doc/2f13724691.html,/)或者通过网上搜索可以查找到下载资源。目前GCC的最新版本为 3.4.0。可供下载的文件一般有两种形式: gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。 2. 解压缩 根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符): % tar xzvf gcc-3.4.0.tar.gz 或者 % bzcat gcc-3.4.0.tar.bz2 | tar xvf - 新生成的gcc-3.4.0这个目录被称为源目录,用${srcdir}表示它。以后在出现${srcdir}的地方,应该用真实的路径来替换它。用pwd命令可以查看当前路径。 在${srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏览器打开index.html阅读。

相关文档
最新文档