18.3.1.5 所有输出
GCC有另外一个选项-save-temps,可以便利地一次性获得所有中间输文件。当你使用此选时,GCC正常地进行编译和连接,但将会在当前目录下保存预处理的输出、汇编语句、object文件。使用-save-temps选项生成的文件名与源文件名相同,对于预处理输出、汇编语句、object文件,后缀分别为.i,.s和.o。
18.3.1.6 无一输出
如果使用-fsyntax-only选项,GCC将不会进行预处理、编译、装配、或连接,它仅仅测试输入文件的语法,具体可参见本章后面的“编译警告”一节。
18.3.2 多个输入文件
在第一章中,我们将circle.c分成两个文件,编译多个源文件将会产生多个object文件,每个文件中均包含机器码和对应源文件中各对象的符号,GCC为对象输出使用临时文件,除非你使用-c选项指示它仅编译,不进行连接:
$ gcc -c circle.c
$ gcc -c circulararea.c
这此命令将在当前工作目录下产生两个object文件,文件名分别为:circle.o和circulararea.o,你也可以将源文件名写在同一个GCC命令行中,获得同样的结果:
$ gcc -c circle.c circulararea.c
实际上,编译器在同一时间仅执行一个小任务,大程序往往包含许多源文件,在开发期间它们将被编译,测试、编辑、再编译多次,但整个代码的变动很小,为了节省时间,像make这样的控制构建的工具产生,它们使编译器仅对object文件比其对应的最新的源文件老的文件进行重新编译。
一次将当前源文件编译后产生的object文件进行连接可以使用下面命令:
$ gcc -o circle circle.o circulararea.o –lm
GCC假设以.o为后缀的文件为要进行连接的object文件。
18.3.2.1 文件类型
编译器认识一系列C程序的扩展文件,如下:
.c
C源码,在编译前进行预处理。
.i
预处理输出,为编译做准备。
.h
C头文件。
.s
汇编语言文件。
.S
带有C预处理指示符的汇编语言文件,在装配前进行预处理。
GCC也支持其他一些文件扩展:
.ii、.cc、.cp、.cxx、.cpp、.CPP、.c++、.C、.hh, .H, .m .mi, .f, .for, .FOR, .F, .Fpp, .FPP, .r, .ads和.adb;
这些文件类型涉及C++, Objective-C, Fortan, 或Ada, 带有其他扩展名的文件将被当做object文件来进行连接。
如果你为输入文件使用其他的命名,可以使用-x file_type选项来指定GCC处理它们,file_type必须为以下几种之一: c, c-header, cpp-out, assembler, assembler-with-cpp, 或none。所有在命令行中跟在-x后面的文件列表将以指定的类型进行处理。更改类型时,可再次使用-x,例如:
$ gcc -o bigprg mainpart.c -x assembler trickypart.asm -x c otherpart.c
可以在命令行中多次使用-x来不同的文件类型,选项-x none将关闭类型指示。
18.3.3.2 混合输入类型
可以在GCC命令行中混合多种输入类型,编译器将忽略你请求不进行处理的文件,例如:
$ gcc -c circle.c circulararea.s /usr/lib/libm.a
在上面的命令行中,假设所有指定的文件均存在,GCC编译和装配circle.c, 装配circulararea.s, 并忽略库文件,因为-c选项告诉它不做连接,输出结果为两个文件:circle.o和circulararea.o。
分享到:
相关推荐
02H3 C VEPC3200核心网故障处理手册pdf 03H3CBBU3100系列基带处理单元故障处理手册,p 04H3 C VEPC3200产品开局自检手册pdf 05H3 C VMEGW3200技术白皮书pdf 06移动通信技术概述pdf 07H3CEPC3108核心网特性手册(E2123)...
C程序员在编写程序时手头一定要有这本书。在这本书中,C 语言专家 Peter Prinz和Tony Crawford为你提供大量的编程参考信息。全书叙述清晰,语句简洁,分析深刻。本书主题包括: C 语言的语法、GNU编译器选项、标准...
·提供了mysql语句、函数、配置选项和实用工具的一个完整手册。 ·给出了几个指导章节用于帮助新手入门。 ·为php、perl和c语言提供了应用程序编程接口(api)。 ·在每章的api开头部分提供了简要的指南。 ...
C语言核心技术是C语言工程师常用的手册知道,是外文翻译过来的,通俗易懂,适合初学者以及开发人员
目前还没翻译完成,持续更新中,第一次翻译,遇到其中的错误请大家留言提醒,谢谢。
ALIENTEK STM32H750核心板底板 PDF原理图+AD集成封装库+主要器件技术手册: 集成封装库: 3.5TFTLCD封装库.IntLib ATK-4.3' TFTLCD电容触摸屏模块_V1.2.IntLib ATK-4342 4.3寸RGB屏模块封装库.IntLib ATK-7016&7084 ...
迅为iTOP4412核心板配套开发底板ALTIUM设计硬件(原理图+PCB)+核心器件技术手册,2层板设计,大小为192x108mm,双面布局布线,Altium Designer 设计的工程文件,包括完整的原理图及PCB文件,可以用Altium(AD)软件打开...
书名:JSP 2.0 技术手册(电子书) 格式:PDF 出版:电子工业出版社 作者:林上杰、林康司 本书图文并茂,以丰富的实例为引导,全面介绍了主流的 Java Web 开发技术—— JSP 2.0,重点介绍Java在展示层的两项重要技术...
迅为iTOP4412核心板配套开发底板cadence设计硬件(原理图+PCB)+核心器件技术手册,2层板设计,大小为192x108mm,双面布局布线,cadence 设计的原理图PCB工程文件,包括完整的原理图及PCB文件,可以用Altium(AD)软件...
C++核心编程技术 .rar http://down.qiannao.com/space/file/yuexingchen2/-4e0a-4f20-5206-4eab/C-002b-002b-0020-0020-00b7C-0020-0020vc/C-002b-002b-6838-5fc3-7f16-7a0b-6280-672f-0020.rar/.page C程序100例 ....
这是一套Java核心技术基础使用手册,包含Java 基础核心总结、Java核心基础、Java核心知识、Java 基础面试题总结等,内含最强 Java 核心知识点整理及思维导图,需要的朋友可下载试试! Java是一门编程语言,Java发展...
STM32F767单片机核心板+开发底板PDF原理图+AD集成封装库+主要器件技术手册:3710FXXX037XXFX01.pdf 3710MXXX046XXFX01.pdf AMS1117.pdf AP3216C.pdf AT24C02.pdf AT8574_8574A_DS001V1.2.pdf CAT6219.pdf CH340.pdf ...
ALIENTEK STM32F750核心板+开发底板PDF原理图+AD集成封装库+主要器件技术手册,ALTIUM集成封装库器件列表: Library Component Count : 63 Name Description ----------------------------------------------------...
H3C S9500系列交换机是H3C公司面向以业务为核心的企业网络架构而推出的新一代核心路由交换机,该产品基于H3C公司自适应安全网络的技术理念,在提供大容量、高性能L2/L3交换服务基础上,进一步融合了硬件IPv6、网络...
·提供了mysql语句、函数、配置选项和实用工具的一个完整手册。 ·给出了几个指导章节用于帮助新手入门。 ·为php、perl和c语言提供了应用程序编程接口(api)。 ·在每章的api开头部分提供了简要的指南。 ...
ALIENTEK STM32F767(核心板+开发底板)PDF原理图+AD集成封装库+主要器件技术手册,集成封装库部分型号器件列表: AMS1117 AP3216C ALS+PS Sensor ATK-HC05 ATK-HC05 BAT BEEP BUTTON C CAP CH340G USB2UART D DB...
TI基于KeyStone的8核固定浮点数字信号处理器,DSP集成C66x CorePac,每个核心在1至1.25 GHz到10 GHz的运行。
H3C MSR 50系列多业务开放路由器包含MSR 50-40和MSR 50-60两款设备,该系列产品可以为大型分支机构提供高性能、多业务的一体化网络方案,也可以作为大中型企业的核心网络设备,完成数据、语音、视频等多种流量的广域...