sysパッケージマネージャを使用して開発パッケージをインストールするには?

sysパッケージマネージャを使用して開発パッケージをインストールするには?

*-devUbuntuでパッケージを使用する方法は混乱しています。

libxml2Ubuntuでこのライブラリを使用して独自のコードを開発したいと思います。を使用してlibxml2-devをインストールしましたがapt-get、ヘッダファイルが/usr/include/libxml2/libxml

たとえば、ヘッダーファイルを含めるには、parse.h次のパスを使用する必要がありますlibxml2/libxml/parser.h。これはうまくいきましたが、一連の問題に直面しました。

parse.h開発者が作成した別のヘッダーが含まれていますlibxml/xmlversion.h。残念ながら、このパスは-devUbuntuでヘッダーファイルを保存する方法と一致しません。つまり、xmlversion.h(少なくとも私のプログラムでは)呼び出す必要がありますlibxml2/libxml/xmlversion.h

同様に、デフォルトの検索パスにもないxmlversion.hヘッダーを呼び出すと、連続した「該当ファイルなし」エラーが発生します。libxml/xmlexports.h

含める検索パスを手動で指定することで/usr/local/libxml2この問題を解決できると思いましたがapt-get、それでは、少なくともパッケージマネージャがパッケージを*-devインストールするときにコンパイラ検索パスを正しく設定したとします。

*-devパッケージを使用すると何が欠けていますか?これが正常な動作ですか、それとも特定の問題ですかlibxml2-devaptパッケージマネージャは、パッケージをインストールした後に何をすべきですか*-dev

答え1

開発パッケージには通常pkg-configinが含まれています/usr/lib/pkgconfig。このプログラムは、ライブラリの使用に必要なCコンパイラおよびリンカフラグを照会するために使用できます。

libxml2-devC コンパイラフラグの場合、以下が含まれます-I/usr/include/libxml2

$ pkg-config libxml-2.0 --cflags
-I/usr/include/libxml2

これを使用する1つの方法は次のとおりです。

gcc $(pkg-config libxml-2.0 --cflags --libs) main.c

関連情報