答疑解惑哪家强?当属咱们EEPW最强。。。接下来持续咱们的答疑解惑。这次咱们首要来看一下与编译器和链接器的常见过错、正告有关的问题原因和处理方法。
40. 怎么快速定位过错信息?
在CCS V4及以上版本里,在编译、链接之后有一些过错和正告是包括有链接的,如下图所示。
此刻能够点击带下划线的超链接,然后显示出具体的过错信息,如下图所示。
这个功用现在还没有十分智能化,例如下面的过错就没有更具体的提示信息。此刻需求咱们依据过错描绘去测验处理了。
上面的过错处理起来也简单,它的意思是在链接器选项里运用了-l选项来引证库文件,却没有供给给它库文件的信息,所以就报错了。
41. Warning: function declared implicitly,怎么处理?
这个正告是十分常见的,它标明在产生函数调用的时分,编译器发现函数并没有提早声明。由于这仅仅个正告信息,所以编译器会逼迫自己来幻想函数的参数和返回值,这样虽然有或许能够经过编译,成果却是存在危险的,它会导致程序在运行时很难确诊运行时过错,乃至或许导致函数的输出与规划的功用彻底不相关。
但是你也或许会疑问:一般咱们都知道先声明再运用的准则,函数我已经在头文件里界说了啊?此刻的问题是函数调用产生在头文件引证之前了,只需把头文件引证放在函数调用之前就能处理此问题,一般把头文件的引证放在调用这个函数的源程序的最初就好了。
42. Error: could not open source file "xxx.h",怎么处理?
这个过错有点灰色诙谐的感觉: 分明看到头文件就在工程列表里,咱们双击也能翻开它,编译器却便是死活不认识,还要报出什么致命性的过错。
处理此过错能够运用下面的过程:
1. 查看头文件是否存在,并承认其姓名是否正确。
2. 经查看发现不存在上面的问题,则此刻需求手动把头文件的途径指定给编译器。在CCS工程管理器中右键点击工程名,挑选特点,并切换到头文件对应的选项卡,如下图所示。能够点击图中的方框框出来的+镜像增加,途径则即能够运用相对途径,也能够运用绝对途径,运用相对途径更简单便利工程的移动。
注:上图中的ProjName是编译器中内置的体系变量,咱们能够很便利地运用它们来构建头文件、库文件等的相对途径,如下图所示。