gcc编译c语言多线程程序的步骤,GCC分步骤编译C语言程序
上节《GCC编译C语言程序完整演示》讲解的是通过gcc命令一次性完成编译和链接的整个过程,这样最方便,大家在学习C语言的过程中一般都这么做。实际上,gcc命令也可以将编译和链接分开,每次只完成一项任务。
本节将涉及到C语言程序的生成原理,如果你不了解,请转到《C语言入门教程》学习。
本节以下面的C语言代码为例进行演示:
#include int main() { puts("C语言中文网"); return 0; }
1) 编译(Compile)
将源文件编译成目标文件需要使用-c选项,例如:
gcc -c main.c
就将 main.c 编译为 main.o。打开 demo 目录,就会看到 main.o:
对于微软编译器(内嵌在 Visual C++ 或者 Visual Studio 中),目标文件的后缀为.obj;对于 GCC 编译器,目标文件的后缀为.o。
一个源文件会生成一个目标文件,多个源文件会生成多个目标文件,源文件数目和目标文件数目是一样的。通常情况下,默认的目标文件名字和源文件名字是一样的。
如果希望自定义目标文件的名字,那么可以使用-o选项,例如:
gcc -c main.c -o a.o
这样生成的目标文件的名字就是 a.o。
2) 链接(Link)
在gcc命令后面紧跟目标文件的名字,就可以将目标文件链接成为可执行文件,例如:
gcc main.o
就将 main.o 链接为 a.out。打开 demo 目录,就会看到 a.out。
在gcc命令后面紧跟源文件名字或者目标文件名字都是可以的,gcc命令能够自动识别到底是源文件还是目标文件:如果是源文件,那么要经过编译和链接两个步骤才能生成可执行文件;如果是目标文件,只需要链接就可以了。
使用-o选项仍然能够自定义可执行文件的名字,例如:
gcc main.o -o main.out
这样生成的可执行文件的名字就是 main.out。
下面是一个完整的演示:
$ cd demo
$ gcc -c main.c
$ gcc main.o
$ ./a.out
C语言中文网
$
在控制台上的真实效果为:
gcc编译c语言多线程程序的步骤,GCC分步骤编译C语言程序相关推荐
- covariance matrix r语言_时间序列分析|ARIMAX模型分步骤详解和R中实践
这是关于时间序列的第N篇文章,本文将介绍ARIMAX模型,简单来说就是在ARIMA的基础上增加一个外生变量.ARIMAX和ARIMA相比在理论上没有太多新的内容,所以本文直接介绍在R里怎么一步一步跑A ...
- Linux下C语言程序编写及执行和分步骤编译链接C源代码
实验一:Linux下C语言程序编写及执行 //hello.c #include <stdio.h> int main(){int x = 1;int y = 2;int sum = x + ...
- GCC 编译 C++ 程序分步骤流程(预处理 gcc -E、编译 gcc -S、汇编 gcc -c 和链接 gcc 以及 gcc -o 选项)
C 或者 C++ 程序从源代码生成可执行程序的过程,需经历 4 个过程,分别是预处理.编译.汇编和链接. 同样,使用 GCC 编译器编译 C 或者 C++ 程序,也必须要经历这 4 个过程.但考虑在实 ...
- 01-2.C(C程序编译步骤-gcc 编译过程)
c代码编译成可执行程序4步: 1.预处理:宏定义展开,头文件展开,条件编译,同时将代码中的注释删除,这里并不会检查语法 gcc -E hello.c -o hello.i 2.编译:检查语法,将预处理 ...
- c语言编译四个步骤,gcc编译的四个步骤
以最简单的hello.c为例子 一步到位:gcc hello.c 这条命令隐含执行了 (1)预处理 (2)编译 (3)汇编 (4)链接 这里未指定输出文件,默认输出为a.out gcc编译C源码有四个 ...
- Linux的C语言开发工具——通过进度条小程序学习使用gcc、gdb和make/Makefile工具
C语言实现进度条程序--gcc.gdb和make工具的使用 一.Linux下的进度条程序实现 二.Linux编译器-gcc 2.1 预处理(进行宏替换) 2.2 编译(生成汇编) 2.3 汇编(生成机 ...
- 简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明
学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好.Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器.宏汇编.连接器.库管理和一个功能强大的仿真调试器等在 ...
- c语言编程软件平板_想在ipad上进行C语言程序编写,请问有没有编译的APP
app store 里搜索 C++ Programming Languageapp store 里搜索 C++ Programming Language 本回答被提问者采纳 app store 里搜索 ...
- 单片机DPTR(DPH,DPL)和SP特殊寄存器C语言中应用?这三个特殊寄存器对C程序员来说是透明的,不用C程序员操作,编译的时候会自动运用这三个寄存器ACC寄存器和B寄存器也类似
单片机DPTR(DPH,DPL)和SP特殊寄存器C语言中应用?这三个特殊寄存器对C程序员来说是透明的,不用C程序员操作,编译的时候会自动运用这三个寄存器,ACC寄存器和B寄存器也类似 编译器把C译成指 ...
- linux用gcc编译完怎么运行,linux下使用gcc编译运行C/C++程序
编译C 首先,程序编译过程有: 1.预处理(展开宏,头文件,检查代码是否有误) 2.编译(将.c转为汇编代码.s) 3.汇编(将汇编代码.s转为机器代码.o) 4.链接(将所有机器代码.o和库文件链接 ...
最新文章
- 在Ubuntu 16.04.6 LTS上升级python 3.5到3.7.3实录
- Opencv-Python学习笔记五
- 车联网行业No.1元征科技的云端架构实现
- java 数据库字段_JAVA如何获得数据库的字段及字段类型
- IE8开发人员工具资料
- Java工作笔记-Spring Boot封装Jedis实例
- event.keyCode列表
- 循环 Request.ServerVariables
- 【OJ8756】砝码称重V2,可达性多重背包
- 机器学习/人工智能 知识图谱
- 频率法:数组排序的另一种思路
- 邮箱服务器退回,发出去的邮件为什么被退回?
- Linux进程管理工具 Supervisor详解
- 原型模式(Prototype)C++实现
- 【我的Android进阶之旅】Realm数据库学习资料汇总(持续更新)
- 2022西电抗疫CTF个人赛
- TextCNN pytorch实现
- 解决其他浏览器能上网谷歌浏览器不能上网
- 如何实现 ASP.NET Core WebApi 的版本化
- oracle数据库开发认证,数据库考试简介之Oracle认证
热门文章
- Mysql 添加外键失败
- Premiere Pro CC 2020 v14.0.0.572 Win/Mac 中文版/英文版
- 小说电影里面的“冥想”只是玄学中来修炼的吗?
- 大学生返乡回农村种植有机水果,带领农民走上创富之路
- Jenkins(10):禁止用户注册
- Git学习之旅:Mac安装Git与创建本地仓库(一)
- Servlet入门总结及第一个Servlet程序
- linux远程连接windows桌面背景,xrdp实现windows 远程桌面连接linux(各用户桌面独立)...
- 部署前端刷新页面出现404问题
- Swoole加速结巴分词