ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

gcc编译器windows版 1.0

2019-09-09 16:03:01  阅读:202  来源: 互联网

标签:选项 文件 gcc windows 编译 编译器 test


原文链接: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

标签:选项,文件,gcc,windows,编译,编译器,test
来源: https://blog.csdn.net/weixin_44130595/article/details/100664447

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有