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

zil*_*lus 19 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

where 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 +++
Run Code Online (Sandbox Code Playgroud)

更改为/ usr/bin目录:检查/.../ListLib.c

cppcheck --check-config ListLib.c:给出了同样的错误,如果在/ usr/bin /中执行它会正常工作

对于登陆此页面的人来说,我可以使用我的homefolder中的cfg文件:

make SRCDIR = build CFGDIR =〜/ cppcheck_cfg然后offcourse
sudo make install

pra*_*ugs 20

我也遇到了同样的问题.

解:

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

$ sudo make install CFGDIR=/usr/share/cppcheck/
Run Code Online (Sandbox Code Playgroud)

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

  • 我深入研究Makefile并找出原因:`make install`也在`lib`目录中构建代码,只需调用`make`即可编译. (2认同)

小智 1

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

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