web-dev-qa-db-ja.com

コンパイラはヘッダーファイルを見つけることができません。ディレクトリをPATHに追加しますか?

/usr/include/gtk-3.0/gtk/ ..にあるgtkで作業しようとしていますが、すべてのヘッダーファイルinツールキットに#include <gtk/gtk.h>があります。

/usr/local/gtk-3.0PATHに追加するか、すべてのインクルードプリプロセッサにgtk-3.0を追加する以外に、これには他にどのようなオプションがありますか?

6
sherrellbc

インクルードパスに適切なディレクトリを追加することは、まさにこの場合に行うことになっていることであり、あなただけが_pkg-config_によってそれを行うことになっています。フルパス名を使用してファイルに直接アクセスすることはサポートされていません。

次のようなものをMakefileに追加します。

_CFLAGS += `pkg-config --cflags gtk+-3.0`
LIBS += `pkg-config --libs gtk+-3.0`
_

これにより、現在のシステムに適切なコンパイラおよびリンカーオプションが自動的に追加されます。

6
Celada

PATH環境変数は、他の種類のファイルではなく、実行可能ファイルの検索パスです。インクルードファイルの場合、オプション-I/usr/include/gtk-3.0/gtkをコンパイラに渡すように調整する必要があります。通常、これを行うには、メイクファイルで定義された変数(通常はCFLAGS='-I/usr/include/gtk-3.0/gtk')を設定するか、./configureに引数を渡します(通常は./configure --includedir=/usr/include/gtk-3.0/gtk)。

Gtkおよびその他のFreedesktopプラクティスに準拠したソフトウェアでは、インクルードファイルの場所、およびその他のコンパイラとリンカーオプションを示す適切な方法は、 pkg-configCeladaの答え