2017-10-28 13 views
0

私はfedoraマシンのデフォルトシェルとしてフィッシュシェルをインストールしました。私は最近nvimに切り替えました。私はdeoplete-clang2を使ってオートコンプリートを行っています。fish shellでcompile_commands.jsonを使用するには?

ただし、ヘッダーファイルの名前のみを入力しています。だからこのissueに基づいて私はファイルを作成しようとしました。

[ 
    { 
     "directory" : "/mnt/Work/Learn/Gtk/Official", 
     "command" : " /usr/bin/bash echo \"/usr/bin/clang (pkg-config --cflags gtk+-3.0) -o main main.c (pkg-config --libs gtk+-3.0)\"", 
     "file" : "/mnt/Work/Learn/Gtk/Official/main.c" 
    } 
] 

しかし、私は次のエラーがスローされたコマンドを確認するためにclang-check main.cを実行したとき。

error: unsupported option '--cflags' 
error: unsupported option '--libs' 
warning: (pkg-config: 'linker' input unused [-Wunused-command-line-argument] 
warning: gtk+-3.0): 'linker' input unused [-Wunused-command-line-argument] 
warning: (pkg-config: 'linker' input unused [-Wunused-command-line-argument] 
warning: gtk+-3.0): 'linker' input unused [-Wunused-command-line-argument] 
In file included from main.c:2: 
/usr/include/gtk-3.0/gtk/gtk.h:30:10: fatal error: 'gdk/gdk.h' file not found 
#include <gdk/gdk.h> 
     ^~~~~~~~~~~ 
1 error generated. 
Error while processing /mnt/Work/Learn/Gtk/Official/main.c. 

どうすればこの問題を解決できますか。ありがとう

答えて

1

これは明示的に実行していますbash、魚ではありません。

"command" : " /usr/bin/bash echo \"[...] 

これは、bashの代わりに "/ usr/bin/fish"を使用して変更できます(魚をインストールしていない場合は、パスを調整してください)。

また、()$()に変更するだけでエラーが発生します。 command1 (command2 arg1 arg2)はbashで有効な構文ではなく、そのままcommand1に渡されます(つまり、引数として(command2arg1arg2)を受け取ります)。

"command" : " /usr/bin/bash echo \"/usr/bin/clang $(pkg-config --cflags gtk+-3.0) -o main main.c $(pkg-config --libs gtk+-3.0)\"" 

、それが動作するはずに変更し、それを。あなたが魚を使用することを決定しない場合、


を($ S注)(改行だけ)を行うない魚、pkg-configは、その出力はスペースで分割されることを期待していることに注意してください。エコー: 'リンカ' 入力未使​​用[-Wunused-コマンドライン引数] 警告:は/ usr /だから、

(pkg-config --libs gtk+-3.0 | string split " ") 
+0

のようにまだエラー '' '警告をスローし、string split " "にパイプにそれを必要とするだろうbin/clang $(pkg-config --cflags gtk + -3.0) - メインmain.c $(pkg-config --libs gtk + -3.0): 'リンカ'入力未使用[-Wunused-command-line-argument] エラー:コンパイルを処理することができません。 ''の中の1つのコンパイラジョブが必要です。 /mnt/Work/Learn/Gtk/Official/main.cの処理中にエラーが発生しました。 '' ' –

+0

その場合、clangの呼び出しが間違っているか、' pkg-config'が動作しないようです。ターミナルで 'pkg-config'呼び出しを実行して、出力が期待通りのものかどうか確認してください。また、 'echo'が実際に必要かどうかをチェックしてください。私はデオープルを知らないので、実行するコマンドを印刷するのか、直接コマンドにするのかは分かりません。後者の場合、 'echo'を削除してください。 – faho

+0

pkg-configはonna端末で完璧に動作し、pkg-configコマンドを手動で実行してコマンドの出力を置き換えると、すべて正常に動作します。 –

関連する問題