首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oclint 0.8在Ubuntu让它开始工作

oclint 0.8在Ubuntu让它开始工作
EN

Stack Overflow用户
提问于 2015-04-15 23:13:01
回答 1查看 685关注 0票数 1

我是oclint的新手,试图让0.8版在Ubuntu14.04桌面上运行,在Virtualbox中作为VM运行。我是从源代码构建的,而不是使用二进制文件。

我有两个非常简单的程序。第一个是我编写的一个小型cpp程序:

代码语言:javascript
复制
gcc sample.cpp -o sample

我像这样跑着

代码语言:javascript
复制
oclint sample.cpp -- -c

我收到一份短信报告。

我有另一个目标-c程序,如下所示

代码语言:javascript
复制
#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

        NSLog (@"hello world");
        [pool drain];
        return 0;
}

编撰如下:

代码语言:javascript
复制
 gcc -c hello.m `gnustep-config --objc-flags` -lobjc -lgnustep-base

这导致了一个工作的可执行文件。但是当我像这样撞到林特的时候,我就有问题了

代码语言:javascript
复制
 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,但没有成功。我开始认为这是某种东西在运行的方式,但我太新了,不知道它很快。在转到更复杂的例子之前,我想让简单的例子开始工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-17 17:29:06

我在回答我自己的问题。奥林汀有几个问题,也许我对它们不够了解。

首先,在运行oclint时,正确地获得命令选项是很重要的。最好的建议是在运行构建时使用bear来捕获compile_commands.json文件中的这些选项,并使用oclint -json编译-数据库来为您运行oclint。

oclint-json编译-数据库是一个python脚本,在使用之前您确实需要查看它。例如:

代码语言:javascript
复制
#!/usr/bin/env python

应该是python在您的环境中的位置。我把它换成了

代码语言:javascript
复制
#!/usr/bin/python

这个python脚本读取compile_commands.json并为每个通过过滤器的程序格式化oclint命令行调用。在我的例子中,生成的命令行太长了,我得到了一个seg。过错。当我缩小命令行时,我得到了一个有效的运行。

我所有的问题都解决了。更多地改进奥林汀医生会有帮助的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29662560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档