随笔分类 -  编译错误

摘要:最近在写代码过程中,发现一个问题,编译总是过不去,报错如下: 打开stdint.h这个文件,发现120行是这样的内容: 继续查找,发现我们代码中的某一个头文件中有这样的定义: 在这个头文件中,把上面这三行注释掉之后,在include<stdint.h>,编译通过。 按这个头文件名为a.h来说,在一个 阅读全文
posted @ 2019-03-04 11:00 小时候挺菜 阅读(666) 评论(0) 推荐(0) 编辑
摘要:list_entry(pos,struct _MAC_DATA,list); 编译时出现如下错误: error: expected expression before 'struct' 原因是: #define list_entry(ptr, type, member) ({ \ const typ 阅读全文
posted @ 2019-02-27 10:27 小时候挺菜 阅读(4965) 评论(0) 推荐(0) 编辑
摘要:在写代码时,我想用extern来关联一个数组,然后利用sizeof计算数组的大小,代码如下: 编译报错: 主要原因是sizeof不能用在extern变量: sizeof 的计算是在代码编译的时刻。 而extern是在链接的时刻。 所以 sizeof 在计算时,并不知道这个extern修饰的符号到底占 阅读全文
posted @ 2019-02-15 16:41 小时候挺菜 阅读(3414) 评论(0) 推荐(0) 编辑
摘要:在编写代码时,我想让两个接口的函数从公用一个,现在分为两个来使用,但是函数的名字相同,放在两个不同的C文件中, 编译后发现,在链接的时候,出现如下错误: 分析是因为两个函数重复定义了,我将每个函数分别加上static后,编译通过。于是上网看了下这个问题的其他现象及解决方法,参考别人,记录如下: 首先 阅读全文
posted @ 2019-02-14 09:40 小时候挺菜 阅读(63806) 评论(1) 推荐(3) 编辑
摘要:今天在头文件.h中初始化了一个数组和函数,在编译的时候提示这个数组和函数重新定义了,检查后发现,犯了一个致命的错误,在头文件中定义变量。。。 以下引用别人的一篇说明,警示自己。 C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能,C语言模块化程序设计需理解如下概念: (1) 模块即是一个 阅读全文
posted @ 2018-11-15 13:53 小时候挺菜 阅读(4555) 评论(0) 推荐(0) 编辑
摘要:一、段错误信息的获取 程序发生段错误时,提示信息很少,下面有几种查看段错误的发生信息的途径。 1、dmesg dmesg 可以在应用程序崩溃时,显示内存中保存的相关信息。 如下所示,通过 dmesg 命令可以查看发生段错误的程序名称、引起段错误发生的内存地址、指令指针地址、堆栈指针地址、错误代码、错 阅读全文
posted @ 2018-11-02 09:44 小时候挺菜 阅读(3467) 评论(1) 推荐(1) 编辑
摘要:一、什么是段错误? 一旦一个程序发生了越界访问,cpu 就会产生相应的保护,于是 segmentation fault 就出现了,通过上面的解释,段错误应该就是访问了不可访问的内存,这个内存区要么是不存在的,要么是受到系统保护的,还有可能是缺少文件或者文件损坏。 二、段错误产生的原因 下面是一些典型 阅读全文
posted @ 2018-11-01 20:04 小时候挺菜 阅读(4898) 评论(0) 推荐(0) 编辑
摘要:在win下编辑的时候,换行结尾是\n\r , 而在linux下 是\n,所以会多出来一个\r,这样会出现错误 此时执行 将file.sh中的\r都替换为空白,问题解决 阅读全文
posted @ 2018-11-01 16:59 小时候挺菜 阅读(310) 评论(0) 推荐(0) 编辑
摘要:一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file 阅读全文
posted @ 2018-11-01 11:14 小时候挺菜 阅读(150) 评论(0) 推荐(0) 编辑
摘要:今天看到一个比较有趣的题目,如下代码,分析输出结果 起初我认为,在C语言中,这样的操作时改变了y的地址,但是它的值并没有改变,所以执行main函数后,y的值不变,还是3 经过测试之后发现,这样的代码编译都无法通过,突然恍然大悟,这是c++中的引用,很久没有用c++,居然连这都忘记了。。。 切入主题, 阅读全文
posted @ 2018-10-12 10:55 小时候挺菜 阅读(28737) 评论(0) 推荐(0) 编辑
摘要:在软件编译过程中,经常会碰到类似这样的编译错误: /usr/bin/ld: cannot find -lhdf5 这表示找不到库文件 libhdf5.so,若是其它库文件,则是 cannot find -lxxx 了,其中 xxx 是库文件的名字。 解决方法有: 1. 安装此库文件和相关软件 一般库 阅读全文
posted @ 2018-09-29 18:23 小时候挺菜 阅读(2303) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示