我是oclint的新手,试图让0.8版在Ubuntu14.04桌面上运行,在Virtualbox中作为VM运行。我是从源代码构建的,而不是使用二进制文件。
我有两个非常简单的程序。第一个是我编写的一个小型cpp程序:
gcc sample.cpp -o sample我像这样跑着
oclint sample.cpp -- -c我收到一份短信报告。
我有另一个目标-c程序,如下所示
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog (@"hello world");
[pool drain];
return 0;
}编撰如下:
gcc -c hello.m `gnustep-config --objc-flags` -lobjc -lgnustep-base这导致了一个工作的可执行文件。但是当我像这样撞到林特的时候,我就有问题了
oclint hello.m -- -c
Compiler Errors:
(please be aware that these errors will prevent OCLint from analyzing this source code)
/usr/include/x86_64-linux-gnu/sys/param.h:23:10: 'stddef.h' file not found
OCLint Report
Summary: TotalFiles=0 FilesWithViolations=0 P1=0 P2=0 P3=0
[OCLint (http://oclint.org) v0.8.1]我安装了许多库来解决缺少的stddef.h文件,输入了libc6和libc6-dev,但没有成功。我开始认为这是某种东西在运行的方式,但我太新了,不知道它很快。在转到更复杂的例子之前,我想让简单的例子开始工作。
发布于 2015-04-17 17:29:06
我在回答我自己的问题。奥林汀有几个问题,也许我对它们不够了解。
首先,在运行oclint时,正确地获得命令选项是很重要的。最好的建议是在运行构建时使用bear来捕获compile_commands.json文件中的这些选项,并使用oclint -json编译-数据库来为您运行oclint。
oclint-json编译-数据库是一个python脚本,在使用之前您确实需要查看它。例如:
#!/usr/bin/env python应该是python在您的环境中的位置。我把它换成了
#!/usr/bin/python这个python脚本读取compile_commands.json并为每个通过过滤器的程序格式化oclint命令行调用。在我的例子中,生成的命令行太长了,我得到了一个seg。过错。当我缩小命令行时,我得到了一个有效的运行。
我所有的问题都解决了。更多地改进奥林汀医生会有帮助的。
https://stackoverflow.com/questions/29662560
复制相似问题