21

如果我启动我的 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: 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 文件:

make SRCDIR=build CFGDIR=~/cppcheck_cfg 然后离开
sudo make install

4

6 回答 6

26

我也面临同样的问题。

解决方案:

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

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

从 cppcheck 社区成员那里得到建议,并了解到“make install”还需要通过 CFGDIR 选项。

于 2014-10-30T10:07:13.473 回答
4
make SRCDIR=build CFGDIR=/usr/bin/cfg HAVE_RULES=yes

make install CFGDIR=/usr/bin/cfg
于 2014-08-29T13:43:16.007 回答
2

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

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

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

我并没有真正深入研究细节,但 cppcheck 的 makefile 看起来他们正在清理 obj 并通过第一个 make 命令构建包括 cfg 位置的 cppcheck

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

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

make install

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

于 2014-07-08T04:30:50.440 回答
1

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

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

于 2014-03-18T17:40:19.367 回答
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。

于 2019-06-19T06:54:32.200 回答
0

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

于 2017-04-25T22:43:36.753 回答