
私は Emacs で Flycheck を使用しており、GTK を学び始めています。しかし、Flycheck は明らかにこのことを認識しておらず、これらの#include
s でエラーが発生します。
インクルード パス オプションに各項目を手動で含めようとしましたが、これはかなり非常識です。膨大な量があります。コマンド ラインからコンパイルする場合、pkg-config
まさにこの理由で が使用されます。Flycheck で同様のことを実行する方法はありますか?gcc
構文チェッカーとして使用しているため、可能だと思いますが、方法がわかりません。
答え1
いいえ、実際にはカスタム Emacs Lisp コードなしでは不可能です。
Flycheck にはこの問題に対する組み込みソリューションはありません。また、C/C++ ビルド ツールとシステムの多様性により、コンパイラ フラグの判別と保存方法がそれぞれ異なるため、今後もおそらく組み込みソリューションは存在しないでしょう。
したがって、 から取得した内容を埋め込むflycheck-clang-include-path
かflycheck-gcc-include-path
(使用しているチェッカーによって異なります)、カスタム Emacs Lisp コードを記述する必要がありますpkg-config
。私は Gtk を知らないため、残念ながら、そのコードが正確にどのようになるかについてはお手伝いできません。
pkg-config
一般的には、変数を呼び出して設定する関数を書いて、その関数を に追加しますc-mode-hook
。フライチェックハスケルまたはフライチェック-DMD-ダブ拡張機能は、基盤となるビルド システムに基づいて、それぞれ Haskell と D の Flycheck 設定を設定します。
これは最善の解決策です。標準化されたビルド ツールがないため、多大な労力をかけずに C/C++ のより高度なサポートを提供することは不可能だからです。
免責事項:私はFlycheckのメンテナーです。