【发布时间】:2014-04-24 13:25:30
【问题描述】:
如果我启动我的 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
哪里是cfg: cfg:/usr/bin/cfg
std.cfg: 标准:/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/ 中执行此操作,则会给出相同的错误并且工作正常
Okey 对于登陆此页面的人,我可以使用我的主文件夹中的 cfg 文件:
使 SRCDIR=build CFGDIR=~/cppcheck_cfg 然后离场
须藤制作安装
【问题讨论】:
-
cppcheck --check-config选项可能有一些有用的输出。 -
cppcheck --check-config ListLib.c: 给出相同的错误并且如果我在 /usr/bin/ 中执行它就可以正常工作
-
这对我有用:cd /home/kubuntu/Projects/cppcheck && make SRCDIR=build CFGDIR=/home/kubuntu/Projects/cppcheck/cfg/std.cfg -j3 && sudo make install -j3 看来 CFGDIR 实际上必须是文件而不是目录!
-
CFGDIR 必须是一个目录,注意它如何声明 CFDIR 而不是 CFG 文件,来自手册:cppcheck 需要 .cfg 文件。要么将它们放在二进制文件所在的子文件夹 cfg 中。否则,使用 CFGDIR 编译 cppcheck 以指定放置 .cfg 文件的任意路径。我什至有多个 cgf 文件看不到这个工作正常,似乎不好的做法
-
cppcheck README 给出了首选的 make 行:github.com/danmar/cppcheck
标签: cppcheck