cppcheck std.cfg не найдена ошибка, когда файл std.cfg доступен

Если я запускаю свой 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

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

5 ответов

Я тоже столкнулся с той же проблемой.

Решение:

$ 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

У меня была такая же проблема несколько дней назад, и я решил ее, изменив способ запуска make-файла на cppcheck.

Я использую версию Linux Red Hat, а версия cppcheck - 1.65.

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

Я не особо разбирался в деталях, но make-файл cppcheck выглядит так, будто они очищают obj и собирают cppcheck, включая местоположение cfg, с помощью первой команды make

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

а вторая команда make будет распространять cppcheck в /usr/bin/ location.

make install

Теперь все, что вам нужно сделать, это настроить bash.

Проверьте разрешения, с file /usr/bin/cfg/std.cfg, чтобы убедиться, что у вас есть права доступа к файлу конфигурации, который, по вашему мнению, он должен пытаться прочитать.

Затем, если это не удалось, запустите cppcheck под strace, чтобы найти системный вызов, который не работает: strace -o /tmp/strace.out cppcheck ListLib.c,

Как сказал @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.

Я столкнулся с той же проблемой, запустив cppCheck GUI в каталоге после компиляции его на Mac с Qt Creator и запуска версии GUI. Я решил проблему, скопировав "std.cfg" в папку приложения: Contents/MacOS. Для доступа к содержимому необходимо щелкнуть правой кнопкой мыши приложение cppcheck-gui. Кажется, можно поместить его рядом с файлом cppcheck-gui в ту же папку, в которой он должен быть проверен в первую очередь. Файл "std.cfg" находится в папке cfg.

Другие вопросы по тегам