如果我启动我的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
答案 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。