Android用visual studio编译 项目编译报空指针

学习GSL库用VS2010配置成功了,现在有個简单的应用要把文件中的数据读取到矩阵里但是文件读取的地方竟然出错

后来我尝试了GSL手册里的例子,出现了相同的错误完全不理解为什么

按理说我的gsl库已经可以用了,用gamma函数和bessel函数做的实验都成功了结果出现这种问题,完全摸不到头脑求高手指点!!!!

首先提供一下PCLint的相关链接:

接丅来,简单介绍一下PCLint到底是一个什么样的工具

PCLint是GIMPELSOFTWARE公司研发的C/C++软件代码静态分析工具,可以说PCLint是一种更加严格的编译器。其主要分为PCLint和FlexeLintPCLint主要应用于Windows平台,以二进制可执行文件提供而FlexeLint应用于其他平台,例如Linux以源代码形式发布。

PCLint在全球拥有广泛的客户群许多大型的软件研发组织都把PCLint检查作为代码走查的第一道工序。PCLint不但能够对程式进行全局分析识别没有被适当检验的数组下标,报告未被初始化的变量警告使用空指针连同冗余的代码,还能够有效地提出许多程序在空间利用、运行效率上的改进点

总结下来,PCLint就是不通过执行程序进荇代码分析发现代码中潜在的Bug。通过个人实践来看PCLint可以发现非逻辑上的80%左右的Bug,绝对是C++开发以及测试人员一个强大的助手

安装包主偠包含如下两部分:

4. 选择生成路径,安装路径即可以及文件名称,然后下一步

6. 选择平台,根据自己的需要选择对应的平台,这里选擇 32bit 点击下一步。

用visual studio编译 的标准头文件由于不同的公司或者组织,其文件组织方式可能不一样又或者包含了其他的各种库,所以有需偠可以在这里进行添加或者执行 PCLint 时出现错误,修改 *.lnt 文件添加即可

11. 提示是否打开新的配置,选择否

12. 创建 OPTIONS.LNT 文件,就是简单几个问题由於我这边显示内容不全,所以选择 No 然后下一步,如果显示全的话可以分别看一下就是一些实例代码,然后选择一下即可

13. 选择对应的開发环境,这里最高只有 VC9 所以对应选择这个即可。

15. 经过漫长的配置设定总算完成了。

经过上面复杂的安装及配置后接着就需要更新┅下 PCLint 程序,使其支持更多的 C++ 检查项等

最后一行,版本号应该为 9.00L 如果不正确,请进行路径或者文件是否正确的检查

PCLint主要使用命令行模式来进行文件的解析,这个GCC的编译器过程非常相似其命令行格式为:

既然将PCLint可以当做一个编译器,则options即为编译选项file即为要编译的文件,对于C++来说主要是*.cpp文件,由于*.h作为包含文件是不会进行单独进行编译的,所以这一点需要注意

如果对一个工程的文件进行检查时,則需要生成文件列表来进行类似于Makefile文件,所以需要注意一下

接下来是各个工具的具体配置方法,具体详细的各个参数的信息还请查閱安装目录下的手册。

5.1 扫描并创建cpp文件列表

这个过程就是上面说到的生成文件列表在Visual用visual studio编译中,主要按照工程(或目录)来进行创建

1. 選择工具,然后创建外部扩展工具

注意: $(ProjectDir)这些宏是vs自定义的,如果需要查看vs中自定义了哪些这种宏可以打开msdn,然后输入一个常见的宏比如ProjectName,就可以很方便地查询到定义了哪些宏

3. 同样,可以根据前文SourceMonitor配置时进行快捷键的分配。

4. 执行添加的PCLintCreation会在对应的工程文件路径丅,生成一个对应的*.lnt文件内容如下:

5. 需要注意的是 ,当该工程下文件发生变化时需要重新执行此任务,保证文件列表的正确性

5.2 对工程下所有文件进行检查

根据上一步扫描的文件,进行PCLint检查

1. 选择工具,然后创建外部扩展工具这个跟上部分的第一步相同。

2013)对应的配置文件"$(TargetName).lnt"为上一步对工程扫描的文件列表。第三如果提示缺少*.lnt文件,则将对应的文件拷贝到PCLint安装路径下即可

注意如果是vs2008,那么需要使鼡env-vc9.lntenv-vc9.lnt文件就是普通的文本文件,使用文本编辑工具即可查看它的内容

'env-vc9.lnt'的错误,只需要到安装目录D:\lint下看看有没有‘env-vc9.lnt'文件如果没有一般在D:\lint\lnt丅是一定有的,大家只需要将该文件拷贝一份到D:\lint目录下即可还可以重启vs试试看。

3. 执行PCLint会在Output窗口中输出对应的Info,WarnError和Fatal等信息,这样根据信息查看对应的代码并进行改正。

5.3 对单个文件进行检查

如果仅仅是对单个文件进行检查则不需要配置前两步即可,但这个步骤仅对于單个文件执行检查是有效的不方便配置到Ant任务中。但是相对于整个工程的检查效率比较高,所以适合快速检查文件并修改问题,具體配置如下

1. 选择工具,然后创建外部扩展工具这个跟前面相同。

3. 执行PCLint会对当前文件进行检查,并输出结果到Output窗口中例如:


第五歩Φ配置参数时都使用到了 env-vc12.lnt这个文件,由于这篇文章是转载的而作者是以vs2013为例写的教程,所以他使用的是env-vc12.lnt这个文件而我的编译工具是vs2008,所以使用的是env-vc9.lnt至于具体某个版本的vs到底应该用哪个版本的env-vc.Int文件,方法很简单打开env-vc.Int,文件的第一行就是这个Int文件是给哪个版本的vs使用的

    这个env-vc9.lnt文件内其实就是上面第五歩配置的过程,下面是这个文件的内容

C语言的关键字共有32个根据关键芓的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类

因此NULL和null都不是关键字

我要回帖

更多关于 用visual studio编译 的文章

 

随机推荐