如何快速排除软件中错误

摘要:编程的新手,包括刚毕业工作的同学在解决编译错误时有时候不知道怎么排除。其实包括编程有多年经验的人有时候也遇到莫名其妙的编译错误一时被搞晕,这不前两天我就编译搞晕过一次。从常见的编译

如何快速排除软件中错误

编程的新手,包括刚毕业工作的同学在解决编译错误时有时候不知道怎么排除。其实包括编程有多年经验的人有时候也遇到莫名其妙的编译错误一时被搞晕,这不前两天我就编译搞晕过一次。

如何快速排除软件中错误

从常见的编译错误来说,主要有一下几类:

1,符号没有定义:这是最常见的错误,也最容易排出,包括变量名未定义,类型没有声明,未定义的函数,未引出的变量及函数,没有指定头文件等等。这种错误对不复杂的工程一边比较好解决,但对于一个复杂工程,常常并不是那么简单。如果你搞个从一个工程中把一个模块移植到其他工程中,并且牵涉到的数据较多时就知道了。

2,语法错误:这也是非常常见的一类,比如标点符号用错,括号不匹配,写成中文的符号,包含了不可见的非法字符,拼写错误,说道这里,我不得不提,在我们群里面,把main写成mian的有多少人,请举手。这类错误也比较好改,但很多初学者总是粗心大意,屡犯不爽!但也有比较复杂的语法错误不是那么好解决甚至多年经验的人也未必能轻松解决,比如遇到复杂指针类型的声明等。

如何快速排除软件中错误

3,找不到函数的实现:这种最常见的就是你使用其他库的函数,却没有把相应的库文件加入链接。还有就是静态函数被其他文件调用,以及函数调用在前实现在后却没有提前声明。

4,弱智错误:这个还真别说很多人,包括老鸟都遇到过,比如修改的文件没有参与编译,修改的工程不是编译的工程,链接到一个错误的库或者错误版本的库。这种错误有时候折腾半天才发现,尤其是一个复杂makefile的工程。

要快速解决编译问题需要很多经验,熟悉Makefile语法,对宏定义、头文件、编程语言的语法比较熟悉才能快速排出这些编译中的故障。从小白变成大白。

对编程有感情或者想从事编程开发的小伙伴,可以关注老码农们自己搞的微信公众号:程序员互动联盟(coder_online) 问下如何入门编程,如何编写出自己的软件,也可以加入技术讨论组,找到志同道合的小伙伴一起学习。