关于未定义的引用的bug 解决
来源:互联网 发布:nx网络验证源码 编辑:程序博客网 时间:2024/06/07 01:40
首先要区分未声明的错误和未定义引用的错误。
未声明的错误发生在程序编译阶段,说的通俗点就是语法检查(我的理解是这样,如有不对,欢迎拍砖) 就是检查所用的方法有没有被包含进来, 思路就是检查头文件和makefile文件中的头文件包含或者说你的文件名有没有写错。
未定义引用主要发生于程序的链接阶段。 简单点的意思就是 你建一个楼房 把各种材料组合成一起 。 出问题就在于组合的时候出问题了 。 常见问题一般3个原因 一:路径错误,也就是makefile错误 二:缺材料 ,就是你需要的功能没有 ! (可以用nm 看你生成的 库时候有你需要的函数 ,我刚才就犯了这样的错) 3 你的材料名错误。。。
ps ---- 改错就是一个抽丝剥茧的过程, 首先要有思路! 其次要熟悉工具! 二者缺一不可 我就对工具很不熟悉 所以我改bug 很慢。 (gdb,grep find nm 等)思路的一般流程就是 确定错误类型----》熟悉造成这个错误的原因(这个就是工作的经验了 )------》使用工具来验证你的想法 ------》解决问题。
改业务错误 就要检查你的逻辑了 流程 查看日志 ------》大致确定问题范围 (用二分法原理 其实很快的 我习惯打印 )-------》打印变量跟踪业务流程 -------》 发现问题 (问题虽然发现了 但是有时候还是无法精确定位 我就遇到过野指针导致 程序多次循环的问题 ,而不是所谓的崩溃 就是一个普通的for循环 多次循环。 以前我不喜欢用gdb 认为 普通打印到屏幕也可以完成同样的动作。。 但是这个问题还是用gdb解决的 。。。。 所以坚决学习常用工具 ,也许查小错误 我感觉还是打印速度快)
本人调试错误能力不强 需要不断的高质量代码量喂出来。。。
- 关于未定义的引用的bug 解决
- 关于pthread_create未定义的引用的奇葩解决
- 对`__stack_chk_fail`未定义的引用 解决手段?
- 关于编译FreeModbus提示 对'pthread_create'未定义的引用 的解决
- pthread_create 未定义的引用
- assert 未定义的引用
- "cblas_ddot"未定义的引用
- 引用未定义的控件
- pthread_create 未定义的引用
- 关于链接失败 对xxxx ‘__gxx_personality_v0’未定义的引用
- 对‘pthread_create’未定义的引用 对‘pthread_join’未定义的引用
- 对‘pthread_create’未定义的引用 对‘pthread_join’未定义的引用
- 对‘pthread_create’未定义的引用
- 对pthread_create未定义的引用
- 对‘pthread_create’未定义的引用
- 对‘pthread_create’未定义的引用
- openssl 使用 未定义的引用
- openssl 使用 未定义的引用
- 两台不同的数据库之间数据关联
- spark从kafka获取数据很慢
- iOS Siri的语言识别程序的开发与实践(Nuance技术)
- 112. Path Sum(y)
- C++类的自动转换
- 关于未定义的引用的bug 解决
- Android Studio 连接提交Git
- Fragment
- Java中获取当前运行代码的类名、方法名、行号
- mvc中 的@字符发生冲突
- 使用SwipeRefreshLayout和RecyclerView实现仿“简书”下拉刷新和上拉加载更多
- Android webView 缓存 Cache + HTML5离线功能 解决
- spring学习总结-第一讲
- iOS base64编解码