三、常见gcc编译警告整理以及解决方法

1、warning: no newline at end of file

在文件最后一行加上回车键

解释:在《Rationale for the C99 standard》一文中,有C99的相关信息:

A backslash immediately before a newline has long been used to continue string literals, as well as preprocessing command lines. In the interest of easing machine generation of C, and of transporting code to machines with restrictive physical line lengths, the C89 Committee generalized this mechanism to permit any token to be continued by interposing a backslash/newline sequence.

c/c++代码的每一行后面有一个“结束符”,也就是newline。避免当被include的文件展开后,前一个文件的最后一行与后一个文件的第一行直接被连接成一行从而造成错误。

2、warning: comparison between pointer and integer

解释:integer与pointer比较

3、 warning: assignment discards qualifiers from pointer target type

解释:赋值时,取消了右值的限定。

4、 warning: passing argument 1 of ‘send’ makes pointer from integer without a cast

解释:函数send的第一个integer型参数没有强制转换为pointer型

5、warning: comparison is always true due to limited range of data type

解释:由于数据类型范围的限制,比较结果一直为真。

6、warning: initialization from incompatible pointer type

解释:不兼容指针类型的初始化

7、 warning: return makes pointer from integer without a cast

解释:return使integer转换为pointer,没有加强制类型转换。

8、warning: incompatible implicit declaration of built-in function ‘printf’

解释:与内置的printf函数隐士声明不兼容。

9、warning: initialization discards qualifiers from pointer target type

解释:initialization取消了指针目标类型的限定。

10、warning: comparison is always false due to limited range of data type

由于类型限制,比较一直是假

11、warning: assignment from incompatible pointer type

不兼容的指针间赋值

12、warning: passing argument 1 of ‘mes_read_time’ discards qualifiers from pointer target type12、

mes_函数第一个参数的传递,丢弃了指针目标类型限定。

13、warning: “protocol_type” redefined

——type重定义

14、warning: ‘return’ with a value, in function returning void

在void返回类型的函数中,return返回值。

15、error: expected expression before ‘else’

else之前无表达式。

16、error: lvalue required as left operand of assignment

左值问题。

17、error: invalid storage class for function ‘XXXXXX’

在文件的某个地方,丢失了一个大括号‘}’。

四、Linux编程gcc编译器禁止所有警告和显示所有警告

编译程序的时候,经常会出现警告。不过对于很多经过,程序员经常无视它的存在,甚至觉得警告挺烦人的。

在linux编译程序时,我们可以很方便的禁止所有警告和显示所有警告。

gcc编译器命令选项-Wall 用来显示所有警告信息,而-w则用来禁止所有警告的显示。默认是显示警告的。

警告不是错误,所以错误会正常的显示。

下面是命令的使用示例:

显示所有警告信息

gcc hello.c -o hello -Wall

禁止所有警告信息

gcc hello.c -o hello -w

这是linux编程需要知道的,就在这里记录一下,以便以后查询。

linux gcc编译常见问题,常见gcc编译警告整理以及解决方法 - 常见gcc编译警告整理以及解决方法...相关推荐

  1. Linux的C语言开发工具——通过进度条小程序学习使用gcc、gdb和make/Makefile工具

    C语言实现进度条程序--gcc.gdb和make工具的使用 一.Linux下的进度条程序实现 二.Linux编译器-gcc 2.1 预处理(进行宏替换) 2.2 编译(生成汇编) 2.3 汇编(生成机 ...

  2. 【Linux】Linux系统编程(入门与系统编程)(二)(vim、gcc、gdb、Makefile、yum、git等工具的了解与使用)

    本文重点 学习yum工具,进行软件安装 掌握vim编辑器使用,学会vim的简单配置 掌握gcc/g++编译器的使用,并了解其过程,原理 掌握简单gdb使用于调试 掌握简单的Makefile编写 了解其 ...

  3. opencv mingw-32 编译常见问题

    OpenCV使用CMake和MinGW的编译 常见问题见最后 前言 本篇文章是介绍使用32在GW在Windows下编译OpenCV 生成32位的DLL 关于使用 64 位的 MinGW 编译 Open ...

  4. Linux centos7升级内核(两种方法:内核编译和yum更新)

                Linux centos7升级内核(两种方法:内核编译和yum更新) Linux的内核概念不用说大家也很清楚,正是内核版本的不同,才有Linux发行版本的说法,现在主流的cen ...

  5. Linux下imx6dl开发板从镜像的烧写、内核源码编译到第一个驱动运行的详细步骤

    文章目录 前言 一.对开发板烧写镜像 1.镜像烧写 2.串口测试 二.搭建交叉编译环境 1.Ubuntu下搭建交叉编译环境 2.WSL下搭建交叉编译环境 三.编译Linux内核源码 1.Ubuntu下 ...

  6. linux yum安装分区工具,搭建本地和网络yum源、源码编译安装软件及磁盘分区管理...

    1.自建yum仓库,分别为网络源和本地源 1)挂载光盘镜像 [root@centos7 ~]#mount /dev/sr0 /mnt/ [root@centos7 ~]# df -h Filesyst ...

  7. PHP编译安装时常见错误解决办法,php编译常见错误

    PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt & ...

  8. 解决在使用 Qt 编译项目时出现 “C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode格式以防止数据丢失“ 的警告

    解决在使用 Qt 编译项目时出现 "C4819: 该文件包含不能在当前代码页(936)中表示的字符.请将该文件保存为 Unicode格式以防止数据丢失" 的警告 警告出现的原因:编 ...

  9. c语言多文件程序编译和链接,C语言知识汇总 | 04-源文件、可执行程序、编译与链接...

    一.源文件(Source File) 在开发软件的过程中,需要将编写好的代码(Code)保存到一个文件中,这样代码才不会丢失,才能够被编译器找到,才能最终变成可执行文件.这种用来保存代码的文件就叫做源 ...

最新文章

  1. excel引用指定单元格数据_Excel数据查找引用函数详解,一看就会用 #办公技巧 #excel #职场
  2. 设置Eclipse智能提示(转)
  3. STL的remove函数和list的remove成员函数
  4. windows怎么更改系统默认编码为utf-8?(避免编译从linux系统弄过来的c文件printf出现乱码问题)(beta版:使用unicode utf-8提供全球语言支持)
  5. LC滤波器简单设计法 - 一文读懂LC滤波器简单设计方法及原理介绍,LC值计算方法...
  6. 大脚导入配置选择哪个文件_有史以来最全的 IntelliJ IDEA 配置图解
  7. 《零基础看得懂的C语言入门教程 》——(十一)C语言自定义函数真的很简单
  8. 详细解释signal和sigaction以及SIG_BLOCK
  9. Settings【学习笔记05】
  10. leetcode 107 --- 二叉树程序遍历 ii
  11. 【Java基础篇】集合排序
  12. python手机编译器可以干什么_世界上最好的Python编辑器是什么?
  13. 正则匹配承兑的html,正则匹配闭合HTML标签(支持嵌套)
  14. java 强制类型转换_lt;08gt;数据类型转换
  15. 通过bin-log对mysql进行数据恢复
  16. 王者经典猎马技术之昨日重现
  17. Atiti.ui原理与gui理论
  18. 复旦nlp实验室 nlp-beginner 任务二:基于深度学习的文本分类
  19. 三阶魔方中心块调整公式及助记方法
  20. 微信小程序 behaviors 组件之间数据共享

热门文章

  1. 2021-09-13 以nacos为配置中心,集成seata
  2. Android RecyclerView点击展开、折叠效果的实现方式
  3. 缓存淘汰策略:LRU、LFU、FIFO 算法原理
  4. iOS开发 使用fui(Find Unused Imports)扫描工程中不用的类
  5. php hhvm nginx并发,php-Nginx和HHVM始终返回404
  6. Mac中如何查看java版本
  7. 爱情公寓经典语录(第一部)
  8. 华为OD机试题 - 端口合并(JavaScript)| 机考必刷
  9. IOS手机中图片的复制粘贴,剪切
  10. BUAA 强化学习DQN代码及实验报告参考