web-dev-qa-db-ja.com

std.cfgファイルが使用可能な場合にcppcheckstd.cfg notfoundエラー

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

whereis 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ファイルで機能するようになりました。

sRCDIR = build CFGDIR =〜/ cppcheck_cfgを作成してから、オフコースにします
Sudo make install

19
zilleplus

私も同じ問題に直面しました。

解決:

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

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

Cppcheckコミュニティメンバーから提案を得て、「makeinstall」にもCFGDIRオプションを渡す必要があることを知りました。

20
prabhugs
make SRCDIR=build CFGDIR=/usr/bin/cfg HAVE_RULES=yes

make install CFGDIR=/usr/bin/cfg
4
user3990375

数日前に同じ問題が発生し、cppcheckでmakefileを実行する方法を変更することで解決しました。

Linux Red Hatバージョンを使用していますが、cppcheckバージョンは1.65です。

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

私は実際には詳細を掘り下げませんでしたが、cppcheckのmakefileは、最初のmakeコマンドでobjをクリアし、cfgの場所を含むcppcheckをビルドしているように見えます

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

2番目のmakeコマンドは、cppcheckを/ usr/bin /の場所に配布します。

make install

今あなたがしなければならないのはbashをセットアップすることです。

2
j. cho

file /usr/bin/cfg/std.cfgを使用してアクセス許可を確認し、読み取ろうとしていると思われる構成ファイルにアクセスするためのアクセス許可があることを確認します。

次に、失敗した場合は、straceでcppcheckを実行して、失敗しているシステムコールを見つけます:strace -o /tmp/strace.out cppcheck ListLib.c

1
R Perrin

Qt Creatorを使用してMacでコンパイルし、GUIバージョンを実行した後、ディレクトリでcppCheckGUIを実行すると同じ問題が発生しました。 「std.cfg」をアプリケーションフォルダにコピーすることで問題を解決しました:Contents/MacOSコンテンツにアクセスするには、cppcheck-guiアプリケーションを右クリックする必要があります。最初にチェックする場所と同じフォルダにあるcppcheck-guiファイルの横に置いても問題ないようです。 「std.cfg」ファイルは、cfgフォルダーにあります。

0
Robert Chapman

@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

そして、あなたはこのsytaxを使うことができます:

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

これらのステップの後、あなたはcppcheckを楽しむことができると信じています。

0
William