当std.cfg文件可用时,找不到cppcheck std.cfg错误

时间:2014-03-18 17:22:54

标签: cppcheck

如果我启动我的cppcheck,我会收到以下错误:  cppcheck ListLib.c (信息)无法加载std.cfg。您的Cppcheck安装已损坏,请重新安装。 Cppcheck二进制文件是在CFGDIR设置为“/ usr / bin / cfg”的情况下编译的,因此将在该路径中搜索std.cfg。

系统:opensuse13,cppcheck版本:cppcheck-1.64, 编译:make SRCDIR = build CFGDIR = / usr / bin / cfg HAVE_RULES = yes

检查文件是否存在: ls / usr / bin / cfg:gtk.cfg posix.cfg qt.cfg sdl.cfg std.cfg windows.cfg

whereis cfg: cfg:/ usr / bin / cfg

whereis std.cfg: std:/usr/bin/cfg/std.cfg

cat std:/usr/bin/cfg/std.cfg为我提供该文件的输出

堆栈跟踪:

lstat("/home/.../ListLib.c", {st_mode=S_IFREG|0644, st_size=4568, ...}) = 0
stat("/home/.../ListLib.c", {st_mode=S_IFREG|0644, st_size=4568, ...}) = 0
open("std.cfg", O_RDONLY)               = -1 ENOENT (No such file or directory)
open("cfg/std.cfg", O_RDONLY)           = -1 ENOENT (No such file or directory)
write(2, "(information) Failed to load std"..., 213) = 213
write(2, "\n", 1)                       = 1
exit_group(1)                           = ?
+++ exited with 1 +++

更改为/ usr / bin目录的工作原理:  检查/.../ ListLib.c

cppcheck --check-config ListLib.c: 给出了同样的错误,如果我在/ usr / bin /

中执行它会正常工作

对于登陆此页面的人来说,我使用了我的家庭文件夹中的cfg文件:

制作SRCDIR =构建CFGDIR =〜/ cppcheck_cfg然后离开 sudo make install

6 个答案:

答案 0 :(得分:20)

我也遇到了同样的问题。

解决方案:

$ make SRCDIR=build CFGDIR=/usr/share/cppcheck/

$ sudo make install CFGDIR=/usr/share/cppcheck/

得到了cppcheck社区成员的建议,并且知道'make install'也需要传递CFGDIR选项。

答案 1 :(得分:4)

make SRCDIR=build CFGDIR=/usr/bin/cfg HAVE_RULES=yes

make install CFGDIR=/usr/bin/cfg

答案 2 :(得分:2)

几天前我遇到了同样的问题,通过改变我在cppcheck上运行makefile的方式解决了这个问题。

我使用Linux Red Hat版本,cppcheck版本是1.65。

make SRCDIR=build CFGDIR=/home/###/####/cppcheck-1.65/cfg/ && make install

我没有真正深入研究细节,但cppcheck的makefile看起来像是在清理obj并通过first make命令构建cppcheck包括cfg location

make SRCDIR=build CFGDIR=/home/###/####/cppcheck-1.65/cfg/ &&

和第二个make命令会将cppcheck分发到/ usr / bin / location。

make install

现在你所要做的就是设置bash。

答案 3 :(得分:1)

使用file /usr/bin/cfg/std.cfg检查权限,以确保您有权访问您认为应该尝试阅读的配置文件。

然后,如果失败,请在strace下运行cppcheck以查找失败的系统调用:strace -o /tmp/strace.out cppcheck ListLib.c

答案 4 :(得分:0)

在使用Qt Creator在Mac上编译并运行GUI版本后,我遇到了在目录上运行cppCheck GUI的相同问题。我通过将“std.cfg”复制到应用程序文件夹中来解决问题:Contents / MacOS 您必须右键单击cppcheck-gui应用程序才能访问内容。将它放在同一文件夹中的cppcheck-gui文件旁边似乎没问题,因为它必须首先检查它。可以在cfg文件夹中找到“std.cfg”文件。

答案 5 :(得分:0)

正如@prabhugs所说,我将进行更多描述。 在github cppcheck的源代码中,建议make语法为:

$ make SRCDIR=build CFGDIR=cfg HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function

其中的“ CFGDIR”选项是可以定向的方向。例如:

$ make SRCDIR=build CFGDIR=/usr/share/cppcheck HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function

然后,您可以使用以下语法:

$ sudo make install CFGDIR=/usr/share/cppcheck/

完成这些步骤后,您可以享受cppcheck。