当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : pclint的编译错误解决的方法
帖子发表于 : 2007-08-04 10:19 

注册: 2007-08-04 10:04
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
我现在用pclint进行测试,可是有好多错误不知道怎么去解决呢!!!希望有高手帮帮忙呢!!!
如:error 40: (Error -- Undeclared identifier 'default_value') [MISRA Rule 20]


页首
 用户资料  
 
2 楼 
 文章标题 : Re: pclint的编译错误解决的方法
帖子发表于 : 2007-08-04 12:12 
头像

注册: 2007-04-03 9:52
帖子: 353
送出感谢: 0 次
接收感谢: 0 次
jili_baoer 写道:
我现在用pclint进行测试,可是有好多错误不知道怎么去解决呢!!!希望有高手帮帮忙呢!!!
如:error 40: (Error -- Undeclared identifier 'default_value') [MISRA Rule 20]


字面意思是 default_value 没定义, 如果没定义就定义一下,

如果已经定义了,可能是pc-lint 找不到相关路径,

可以考虑在std.lnt 中加入Project 的路径,

也可能是其它原因,具体情况就要看代码和pc-lint的设置了

msg.txt 和 pc-lint.pdf 中有说明 error 40 是什么东西,

MM居然用的MISRA 的规范,可见系统的要求还是比较苛刻的,

MISRA Rule 20
All object and function identifiers shall be declared before use.


_________________
TODO LIST:
1.valgrind:
2.gcov:
3.cppuint:未在Linux中使用
4.PostgreSQL:unixODBC
5.Doxygen:UTF8 中文问题,生成LaTex文档问题
6.LaTex:明确安装问题,UTF8 中文字体问题


页首
 用户资料  
 
3 楼 
 文章标题 : 天头疼呢!!!!!!!!!!!!
帖子发表于 : 2007-08-07 10:17 

注册: 2007-08-04 10:04
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
我将宏定义所在的头文件的目录已经添加到std.lnt文件中了,可是呢,他在检查时还是不会自动地到所办函的头文件里去找。。。呜呜。。。
我只有在std.lnt里定义那些宏才行。。
我想如何将系统的要求变低一点呢!!!


页首
 用户资料  
 
4 楼 
 文章标题 : 高手求助
帖子发表于 : 2007-08-07 10:22 

注册: 2007-08-04 10:04
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
antonym55
你知不知道怎么讲系统的要求将低一点,不用MISRA 的规范。
我现在做测试,一个工程测下来5千多个信息。。我头头让我将错误解决。
程序原本用vc编译已经通过,现在让我用pclint测试,我们这谁也不懂这,可怜的我有问题还问不了,,只有到网上来请高手帮忙了。。。。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 高手求助
帖子发表于 : 2007-08-07 20:52 
头像

注册: 2007-04-03 9:52
帖子: 353
送出感谢: 0 次
接收感谢: 0 次
jili_baoer 写道:
antonym55
你知不知道怎么讲系统的要求将低一点,不用MISRA 的规范。
我现在做测试,一个工程测下来5千多个信息。。我头头让我将错误解决。
程序原本用vc编译已经通过,现在让我用pclint测试,我们这谁也不懂这,可怜的我有问题还问不了,,只有到网上来请高手帮忙了。。。。


你在std.lnt中把 au-misra.lnt 注释了就OK了,

不过这不是解决问题的方法,最好还是改代码,

用什么标准,你们的系统没有要求么?

如果你们的系统可靠性要求比较高(例如 99.99999......% ),去掉这个就不是明智之举,

如果有一些确认可以匆略的的警告,可以在 option.lnt 中禁止掉

例如:warning 783, gcc 等编译器,要求c/c++文件必须以空行结束,

如果你不是用的这类编译器,公司或项目决定可以匆略这个警告,可以在option.lnt 中加入

-e783 //Line does not end with new-line

否则,你就必須在每个文件的结束加上空行,以保证不出现 783 的警告


_________________
TODO LIST:
1.valgrind:
2.gcov:
3.cppuint:未在Linux中使用
4.PostgreSQL:unixODBC
5.Doxygen:UTF8 中文问题,生成LaTex文档问题
6.LaTex:明确安装问题,UTF8 中文字体问题


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-08-07 21:16 
头像

注册: 2007-04-03 9:52
帖子: 353
送出感谢: 0 次
接收感谢: 0 次
补充一点MIRSA 标准的资料(它的主要文档是需要付费的)

引用:
MISRA C检查器:用于高安全性要求的系统
在对任务或安全性要求较高的系统中,代码的质量是极为重要的。由于IAR Embedded Workbench在链接过程中进行类型检查和多种诊断,因此生成的代码非常可靠。随着MISRA C检查器的引入,汽车工业方面的软件安全性要求也已得到支持。
什么是MISRA C?
汽车工业软件可靠性协会(MISRA)是英国的一个旨在提高汽车软件安全性的组织。

1998年,MISRA出版了“Guidelines for the Use of the C Language in Vehicle Based Software”。这些规则指出了C语言中的模棱两可之处,并为汽车工业建立了代码编写规则。

MISRA C包含127条规则。其中93条是必须遵守的,剩下34条是建议遵守的。所有这些规则都是应用于源代码,而不是由编译器产生的目标代码。
谁应当使用MISRA C?
遵守MISRA C规则是许多汽车公司的要求,但任何开发组织都可以从中获益。这些规则强调软件编程的实践,并指出了C语言中的模棱两可之处;有助于开发者以一致的风格来编写代码,避免混乱的设计。

它是如何工作的?
MISRA C检查器完全与IAR的C编译器集成在一起。在IAR Embedded Workbench中,您可以控制哪些MISRA C规则需要被检查;这些设置将被编译器和链接器所应用。
每当发现代码不符合某条必须的或建议的规则,编译器都会产生一条信息,除非您关闭该项检查。每条信息都注明了所违反的MISRA C规则,例如:

Error[Pm088]: pointer arithmetic should not be used (MISRA C rule 101)
遵从MISRA C
若要宣称您的产品遵从MISRA C规则,您必须证明:

• 完成一个兼容性矩阵,说明每条规则是如何得以实施的。

• 该产品中所有的C代码都遵从MISRA C规则;文档中如有指明可以不符合的除外。

• 维护一份清单,列出所有未遵从MISRA C规则的场合,并对每个不符合规则的场合都在已签署的文档中进行准确的纪录。

• 如“Guidelines for the Use of the C Language in Vehicle Based Software”一文中要求的那样,在培训、编程风格指导、编译器选择和验证、检查工具验证、度量尺度和测试覆盖率等方面都已采取适当的措施。



_________________
TODO LIST:
1.valgrind:
2.gcov:
3.cppuint:未在Linux中使用
4.PostgreSQL:unixODBC
5.Doxygen:UTF8 中文问题,生成LaTex文档问题
6.LaTex:明确安装问题,UTF8 中文字体问题


页首
 用户资料  
 
7 楼 
 文章标题 : 谢谢呢!!!继续苦恼着!!
帖子发表于 : 2007-08-08 8:51 

注册: 2007-08-04 10:04
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
antonym55
我对测试结果研究了一下,发现有好多错误是由于他不去查找头文件而造成。
例如它报错为:error 1080: (Error -- Definition for class 'struct MENU_STRING' is not in scope)
但是struct MENU_STRING在include的头文件包含的一个头文件中已经定义。头文件的目录已经添加在std.lnt文件中,还是没用。不知是否是我的配置出了问题。。。。。。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译