当前位置: 首页 > news >正文

福建省建设厅网站职业资格湖北百度seo排名

福建省建设厅网站职业资格,湖北百度seo排名,定制酒营销方案,深圳独立设计工作室1.gcc概述 GCC全称是GUN C Compiler 随着时代的发展GCC支持的语言越来越多,它的名称变成了GNU Compiler Collection gcc的作用相当于翻译官,把程序设计语言翻译成计算机能理解的机器语言。 (1)gcc -o gcc -o (其…

1.gcc概述

GCC全称是GUN C Compiler

随着时代的发展GCC支持的语言越来越多,它的名称变成了GNU Compiler Collection

gcc的作用相当于翻译官,把程序设计语言翻译成计算机能理解的机器语言。

(1)gcc -o 

gcc -o (其中o相当于output)

gcc -o 输出的文件名 输入文件名

-o后面一定首先加入的是output file

例子:

gcc -o build helloworld.c
//通过gcc将helloworld.c文件生成新的执行文件build
//在Linux中build不需要加后缀,在Windows中需要加后缀build.exe

(2)gcc -v 

 gcc -v 显示编译阶段的命令

例子:

gcc -v -o build helloworld.c
//通过-v命令我们可以发现gcc通过调用很多翻译官,把helloworld.c翻译为build

2.C语言编译过程介绍 

(1)预处理

cpp -o a.i 08.c

【gcc -E】对源文件进行预处理

预处理:编译器将C语言的头文件编译进来,还有宏的替换。(头文件#include,宏定义#define)

(2)编译

/usr/lib/gcc/aarch64-linux-gnu/9/cc1 -o ccgaeAEA.s 08.c

cc1将08.c文件翻译成ccgaeAEA.s文件 ,cc1又称为编译器

【gcc -S】 就相当于间接调用/usr/lib/gcc/aarch64-linux-gnu/9/cc1 

(3)汇编 

 as -o cclL6PC.o ccgaeAEA.s

 as将ccgaeAEA.s文件翻译成cclL6PC.o文件

【gcc -c】 相当于间接调用as(当然也是先间接调用cc1将.c文件翻译为.s文件再调用的as)

(4)链接

 /usr/lib/gcc/aarch64-linux-gnu/9/collect2 -o build cclL6PC.o和其他.o文件

【gcc -o】 相当于 /usr/lib/gcc/aarch64-linux-gnu/9/collect2

gcc -o build 08.c就相当于先调用了gcc -S和gcc -c,最后再调用gcc -o。(也就是gcc -o可以直接完成编译和汇编这两个过程。)

总结后缀为.s的文件里面的内容是汇编语言。后缀为.o文件的文件里面是机器语言(二进制语言)。

3.C语言编译常见的错误举例

(1)预处理错误

#include "name" (""在当前目录下去寻找name,""一般用于自定义的)

#include <name>(<>在系统环境变量中去寻找name,<>一般是系统库的)

常见错误就是not find 找不到文件

解决方案:

gcc -I 后面跟查找头文件的目录(是i大写I)

(2)编译错误

1.语法错误

2.链接错误:1)原材料不够,

undefined refernce to fun

寻找标签是否实现了,链接时是否加入了链接

2)多了

multiple definition of 'fun'

多次实现了标签(就是原本的.c文件里fun函数完整了,但是又引入了一个外部的.c文件里面的fun函数) ,最终只保留一个标签实现。

例子: 

出现了 undefined refernce to fun,就是因为fun函数不完整。

 解决方法一:

去掉void  fun(void)的;然后添加{ }

解决方法二:

新建一个.c文件

 然后完善函数fun

最后在编译的时候吧含有完整fun函数的.c文件写在后面,就可以了

最好的写法是将两个.c文件都编译成.o文件

最后编译.o文件

4.C语言预处理介绍

1.#include    

 包含头文件(include不是关键字)

2.#define     

 宏(替换,编写时不进行语法检查,所以在编译时有时候会出错)

例子:

#define 宏名 宏体

#define ABC 5+3

printf("the %d\n",ABC*5)   //5+3*5=5+15=20

#define ABC {5+3} //最好加上{}

宏函数:

#define ABC(x)  5+(x)

3.条件编译:

#ifdef #else #endif

4.预定义宏

系统预定好的,编译器预定的。(前后都是两根下划线)

__FUNCTION__ :函数名

__LINE__:行号

__FILE__:文件名

例子:

 

 修改一下:

 

http://www.ysxn.cn/news/932.html

相关文章:

  • 企业网站分析案例推广工具有哪些
  • 企业网站管理系统多少钱一年大数据精准营销获客
  • 网站建设发布教程视频教程谷歌google浏览器官方下载
  • 券妈妈网站是如何做的长尾关键词挖掘词
  • 霍尔果斯网站建设新网seo关键词优化教程
  • 网站里+动效是用什么做的在线培训考试系统
  • 怎么建立一个网站八字测试网站发布与推广怎么写
  • 北京手机网站开发电话如何设计与制作网页
  • 优设网网站百度外包公司有哪些
  • 惠阳网站推广费用万能推广app
  • sem网站做推广北京千锋教育培训机构怎么样
  • wordpress权限控制海口seo计费
  • 成都 企业 网站建设手机端竞价恶意点击能防止吗
  • 搜狗网站入口抖音账号权重查询
  • 网站虚拟服务器网络舆情软件免费入口
  • 做网站运营这工作怎么样成都seo优化公司排名
  • 软件开发设计文档seo文章关键词怎么优化
  • 原油可以取什么做标题发网站关键词调词平台
  • 如何查询网站的注册信息没广告的视频播放器app
  • 网站建设需要哪些人全网营销推广系统
  • 爬虫网站怎么做第三方平台推广
  • wordpress网站页脚搜索排名
  • 做擦边网站广东省各城市疫情搜索高峰进度
  • 开发网站的过程关键词推广效果分析
  • 做网站各个流程需要留电话号码的广告
  • 北京网站建公司新闻站长工具手机综合查询
  • wordpress源神seo排名赚官网
  • 广州网站建设南宁品牌策略怎么写
  • 网站的空间是什么意思nba赛程排名
  • 聊城网站建设包括哪些开网站需要投资多少钱