- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
一、splint下载。
下载splint网址:
二、解压包安装:
注意:有些地方要使用sudo超级用户
1、解压缩和建立安装路径
#tar-zxvfsplint-3.1.2.linux.tgz
#sudomkdir/usr/local/splint(第一次使用SUDO会提示你输入密码,输入你的超级密码即
可)
#cdsplint-3.1.2
2、配置一下,后面的路径指明配置文件的安装的路径
#./configure--prefix=/usr/local/splint
notes:Ifpossibledonotbuiltsplintinadirectoryunder/usr/.Ifthetestsuiteisrunina
directoryunder/usr/forexample/usr/src/,itwillreporterrorsevenifSplintwasbuilt
correctly.
3、编译:
执行make命令(如果中途有出现yy什么未声明之类的,则sudoapt-getinstallflex,因为
要用到flex静态库)
4、安装
#makeinstall
三、配置
1、打开当前的bash资源文件
#vi~/.bashrc(这里可能也会需要sudo超级用户)
在文件中加入:
exportLARCH_PATH=/usr/local/splint/share/splint/lib
exportLCLIMPORTDIR=/usr/local/splint/share/splint/import
LARCH_PATH-pathtosearchforsplintlibrariesandinitializationsfiles.Ifyouareusing
thestandarddirectories,thisshouldbe.:base-directory/splint-3.1.2/lib.
LCLIMPORTDIR-directorycontaininglclimportsfiles.Ifyouareusingthestandard
directories,thisisbase-directory/splint-3.1.2/imports.
2、使能当前文件
#source~/.bashrc
3、配置环境变量
#exprotPATH=/usr/local/splint/bin:$PATH
或者重复1项目中的动作,打开~/.bashrc,将上面一句加入文件中,并使能。
编译不通过的解决办法
进入src目录,打开文件cscanner.c,在其后添加以下代码:
intyywrap()
{
return1;
}
splint的使用
1.空引用错误
在引用没有指向任何内存地址的指针时,会导致这种错误.也就是使用了一个没有赋值的指
针.
splint支持一种特别的注释.这种注释写在C程序代码中,用于对程序进行特殊说明.
如下面这段程序.使用了/*@null@*/进行了说明,表示说明*s的值可能会是NULL.
//null.c
charfirstChar1(/*@null@*/char*s)
{
return*s;
}
charfirstChar2(/*@null@*/char*s)
{
if(s==NULL)return\0;
return*s;
}
//END
使用splint扫描这个程序时,会输出:
#splintnull.c
Splint3.1.128Apr2005
null.c:(infunctionfirstChar1)
null.c:3:11:Dereferenceofpossiblynullpointers:*s
null.c:1:35:Storagesmaybecomenull
Finishedchecking1codewarningfound
由于firstChar1和firstChar2都使用了null说明,表示指针s可能是个NULL值.
所以,splint会对s值的使用情况进行检查.因为firstChar2函数中,对s的值进行
了NULL的判断.所以,没有对firstChar2函数的指针s输出警告信息.
2.未定义的变量错误
C语言中
您可能关注的文档
- “推进素质教育,减轻中小学生课业负担”.pdf
- 音乐教材教法研讨教法部分材料.pdf
- 企业财务部门工作规划书.pdf
- 金融市场利率与风险管理.pdf
- 高中生习惯养成教育.pdf
- 建筑装饰设计风格与文化探究.pdf
- 工伤保险政策业务解读.pdf
- 大学生体育课素质拓展训练(全文).pdf
- 大气污染与农业生态环境.pdf
- 软件企业如何保护知识产权.doc.pdf
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
最近下载
- 第45届世界技能大赛平面设计技术项目.pdf
- 初中英语学困生的形成原因及对策研究结题报告.doc
- 暑假10以内加减法口算题天天练-每页100题(打印版).docx
- 高血压的中医调理方法.pptx
- 高考作文模拟写作:大树 藤蔓 依靠(附写作指导及范文点评与延伸训练).docx VIP
- 朋友圈要不要屏蔽父母辩论赛 反方辩词一辩、二辩、三辩、四辩发言稿.docx
- 湖南省三湘名校教育联盟2023-2024学年高二上学期11月期中联考物理试题(原卷).docx VIP
- 三《采用合理的论证方法》课件 2021-2022学年高中语文统编版选择性必修上册第四单元.pptx
- 跨学科主题学习——解密汉诺塔游戏 教学课件 电子工业版 五年级下册.ppt
- Project1 An animal book 获奖课件PPT译林版(一)英语二上.pptx
文档评论(0)