如果我启动 cppcheck,我会收到以下错误: cppcheckListLib.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 所在位置: 配置文件:/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 然后offcourse
须藤进行安装
我也遇到同样的问题
解决方案:
$ make SRCDIR=build CFGDIR=/usr/share/cppcheck/
$ sudo make install CFGDIR=/usr/share/cppcheck/
从 cppcheck 社区成员那里得到建议,并了解到“make install”还需要传递 CFGDIR 选项。
make SRCDIR=build CFGDIR=/usr/bin/cfg HAVE_RULES=yes
make install CFGDIR=/usr/bin/cfg
几天前我遇到了同样的问题,并通过更改在 cppcheck 上运行 makefile 的方式来解决。
我使用Linux Red Hat版本,cppcheck版本是1.65。
make SRCDIR=build CFGDIR=/home/###/####/cppcheck-1.65/cfg/ && make install
我并没有真正深入研究细节,但 cppcheck 的 makefile 看起来像是在清理 obj 并通过第一个 make 命令构建 cppcheck 包括 cfg 位置
make SRCDIR=build CFGDIR=/home/###/####/cppcheck-1.65/cfg/ &&
第二个 make 命令会将 cppcheck 分发到 /usr/bin/ 位置。
make install
现在您所要做的就是设置 bash。
使用
file /usr/bin/cfg/std.cfg
检查权限,以确保您有权访问您认为应该尝试读取的配置文件。
如果失败,请在 strace 下运行 cppcheck 以查找失败的系统调用:
strace -o /tmp/strace.out cppcheck ListLib.c
。
在使用 Qt Creator 在 Mac 上编译并运行 GUI 版本后,我在目录上运行 cppCheck GUI 时遇到了同样的问题。我通过将“std.cfg”复制到应用程序文件夹中解决了问题:Contents/MacOS 您必须右键单击 cppcheck-gui 应用程序才能访问内容。将其放在同一文件夹中的 cppcheck-gui 文件旁边似乎可以,因为该文件夹必须是它首先检查的位置。 “std.cfg”文件可以在cfg文件夹中找到。
正如@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了。
从现在开始,使用
代替FILESDIR
来指定Cppcheck数据文件的路径CFGDIR
对于使用cmake的任何人,您可以在配置cmake时指定
FILESDIR
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DHAVE_RULES=ON \
-DUSE_MATCHCOMPILER=ON \
-DBUILD_TESTS=OFF \
-DBUILD_GUI=OFF \
-DFILESDIR=/usr/share/cppcheck/
cmake --build build --parallel
cmake --build build --target install