免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4368 | 回复: 3
打印 上一主题 下一主题

请教PC-lint 628号warning的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-13 09:57 |只看该作者 |倒序浏览
Warning 628 E:\xxx\xxx.c 227 no argument information provided for function 'abc()' (line 227, file E:\xxx\xxx.c)

一般原因是函数调用时没有提供参数信息,或函数原型中没有定义参数信息。

目前针对我的情况排查到原因应该是:abc函数申明在p.h中,定义在p.c中,xxx.c中也包含了p.h头文件,但是在PC-lint工程包含的头文件里除了本地头文件还有一个系统头文件
也叫p.h,显然系统的p.h里没有申明我要的abc函数。
比如在std.lnt中有:
-i"E:\Projects\pclint_include\include"
-i"E:\Projects\xxx\local\include"
前一个路径是系统头文件路径,该目录下有个p.h,后一个是本地的头文件,该目录下也有个p.h,
这样可能导致PC-lint实际包含的是系统的p.h而不是本地的p.h,我将本地的p.h移到另一个目录下如E:\Projects\xxx\local\include\linux,并改下代码的头文件包含路径就可以了。

我想问的是:为什么这种情况会导致报这种warning,这其中涉及的符号关系是怎么样的?各位指教啊~

论坛徽章:
1
射手座
日期:2014-08-04 16:49:43
2 [报告]
发表于 2011-12-13 11:46 |只看该作者
为什么要起这么简单的名字呢 。。。改个有意义的不是更好么

还有就是系统头文件和 本地头文件 在C中是 <> 和" "来区分的,就算都是本地头文件你们的目录也不一样的
" "最好绝对目录, 移植方便的话 可以考虑相对路径 但是要保证无歧义。。
另外你做pclint检查的时候,PCLINT的配置文件是否设置的正确的,如果不是的话 那么前面做的都是徒劳的....

论坛徽章:
0
3 [报告]
发表于 2011-12-13 13:55 |只看该作者
感谢你的回复,您多虑了,名字是我故意简化过的。
路径问题,这个是PC-lint包含头文件的问题,应该跟<>和""没关系,我代码中的p.h是用""的。不管是系统文件夹还是本地头文件,PC-lint是不区分的,只需提供路径,给出多个完整路径,那这些路径的内容就都是PC-lint头文件的“当前目录”。跟把这些路径下的头文件合并后提供效果是一样的。
配置文件没有问题,我的PC-lint已经跑了好几个月了。

我对这些配置没有疑问,问题应该是跟PC-lint是如何编译并维护符号表做这些检查的。

论坛徽章:
0
4 [报告]
发表于 2012-04-11 23:34 |只看该作者
你好,请问这个问题解决了吗?我也遇到了同样的问题,正愁怎样解决呢。。。还望指教,多谢。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP