微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

gcc编译器windows版 1.0

原文链接http://www.xue51.com/soft/3833.html

gcc编译器是由Free Software Foundation(自由软件基金会)开发并推出的一款GNU编译器套件,软件具有多个平台的兼容性体验,不仅支持在windows平台下进行主流编程语言的编译,而且在Linux系统下也能达到很好的软件应用编程,使用者在命令窗口中键入gcc的程序名,以及一些命令参数便可以执行一系列的功能化操作,每个语言编译器都是独立程序,此程序可处理输入的原始码,并输出组合语言码,软件大部分都是由c编写而成的,很好的增强了底层应用的兼容性开发。
为了解决大多数用户在软件下载资源上的困扰,本站提供gcc编译器下载,方便用户更好的引用软件提供的功能进行程序应用的编译,引导用户功能进行快速上手的操作,另外,软件支持常见的C、C++、Objective-C、Fortran、Java等多种语言的编写,极大的简化了不同语言种类的多编译选择难题。有需要的用户可以在本站下载!注:下载包中有gcc编译器windows版安装包以及软件使用说明,请用户不要轻易删除安装包文件以及更改文件类型。
gcc编译器下载
安装教程
1、在本站下载好压缩包,解压缩,双击运行“gccgdb.exe”程序进行软件的解压安装,自定义软件解压目录,点击“Unzip”按钮开始解压安装;

2、解压安装完成后,找到软件安装的“bin”目录,复制路径;

3、右键“计算机”选择“属性”,在窗口中选择“高级系统设置”;

4、在弹出的“系统属性”窗口点击“环境变量”按钮;

5、在系统变量里面找到Path变量,双击出现下面输入框,在变量值的末尾加上加上英文状态下的分号(;),添加完成后将刚刚复制的bin目录粘贴在最后,点击“确定”按钮完成设置;

6、测试是否安装成功,在cmd命令提示符里面输入gcc --help 回车键,出现以下信息,表示安装成功;

使用教程
命令格式:gcc [选项] [文件名]
编译的四个阶段:
-E:仅执行编译预处理;?
-c:仅执行编译操作,不进行连接操作;
-S:将C代码转换为汇编代码;?
-o:指定生成输出文件
-c是使用GNU汇编器将源文件转化为目标代码之后就结束,在这种情况下,只调用了C编译器(ccl)和汇编器(as),而连接器(ld)并没有被执行,所以输出的目标文件不会包含作为Linux程序在被装载和执行时所必须的包含信息,但它可以在以后被连接到一个程序。
-c表示只编译(compile),而不连接成为可执行文件生成同名字的 .o 目标文件。通常用于编译不包含主程序的子程序文件
gcc -c hello.c
生成:hello.o
-o选项用于说明输出(output)文件名,gcc将生成一个目标(object)文件xx。
gcc hello.c -o xqf
或者:gcc -o xqf hello.c(顺序可以调换)
输出:xqf 为程序可执行文件
-g 选项产生符号调试工具(GNU的gdb)所必要的符号信息,插入到生成的二进制代码中。表示编译DEBUG版本。
想要对源代码进行调试,就必须加入这个选项。当然,会增加可执行文件的大小。
gcc study.c -o xqf
gcc -g study.c -o xqf_g
结果如下:(确实加了 -g 可执行文件后变大了一点)
-rwxr-xr-x 1 root root 12393 Apr 19 21:39 xqf_g
-rwxr-xr-x 1 root root 11817 Apr 19 20:48 xqf
gcc 在产生调试符号时,同样采用了分级的思路,开发人员可以通过在 -g 选项后附加数字1、2、3指定在代码中加入调试信息的多少。认的级别是2(-g2),此时产生的调试信息包括:扩展的符号表、行号、局部或外部变量信息。
级别3(-g3)包含级别2中的所有调试信息以及源代码中定义的宏。
级别1(-g1)不包含局部变量和与行号有关的调试信息,因此只能够用于回溯跟踪和堆栈转储。
回溯追踪:指的是监视程序在运行过程中函数调用历史。
堆栈转储:则是一种以原始的十六进制格式保存程序执行环境的方法
常用命令
一. 常用编译命令选项
假设源程序文件名为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]
  8. 多个文件一起编译
    用法:#gcc testfun.c test.c -o test
    作用:将testfun.c和test.c分别编译后链接成test可执行文件
  9. 分别编译各个源文件,之后对编译后输出的目标文件链接
    用法
    #gcc -c testfun.c //将testfun.c编译成testfun.o
    #gcc -c test.c ? //将test.c编译成test.o
    #gcc -o testfun.o test.o -o test //将testfun.o和test.o链接成test
    以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改文件,未修改文件不用重新编译。
    3库文件连接
    开发软件时,完全不使用第三方函数库的情况是比较少见的,通常来讲都需要借助许多函数库的支持才能够完成相应的功能。从程序员的角度看,函数库实际上就是一些头文件(.h)和库文件(so、或lib、dll)的集合。。虽然Linux下的大多数函数认将头文件放到/usr/include/目录下,而库文件则放到/usr/lib/目录下;Windows所使用的库文件主要放在Visual Stido的目录下的include和lib,以及系统文件夹下。但也有的时候,我们要用的库不再这些目录下,所以GCC在编译时必须用自己的办法来查找所需要的头文件和库文件
    例如我们的程序test.c是在linux上使用c连接MysqL,这个时候我们需要去MysqL官网下载MysqL Connectors的C库,下载下来解压之后,有一个include文件夹,里面包含MysqL connectors的头文件,还有一个lib文件夹,里面包含二进制so文件libMysqLclient.so
    其中inclulde文件夹的路径是/usr/dev/MysqL/include,lib文件夹是/usr/dev/MysqL/lib
    特别说明
    提取码:bsiz

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐