PolicyKitを使用する必要があるアプリケーションを開発していますが、PolicyKitはGlibライブラリを使用しているようです。 PolicyKitをインストールしましたが、ヘッダーの場所は/usr/include/polkit-1/
と/usr/include/glib-2.0
にあります。
ヘッダーの内側には、/usr/include/
、/usr/include/polkit
、/usr/include/gobject
などがあります。
コンパイラーが、ヘッダーが想定されている場所にヘッダーを見つけられないため、コンパイルできません。各ヘッダーを個別に変更してみましたが、時間がかかりすぎて、いつ完了するかわかりません。
ここでの問題は、それらがインストールされると、/usr/include/polkit-1
だけにインストールされることになっているときに/usr/include/glib-2.0
と/usr/include
にインストールされることです。つまり、フォルダpolkit-1
およびglib-2.0
は存在しないはずです。とにかく、ファイルとフォルダをそれぞれの場所に配置することでこれをすばやく修正する方法を知っている人はいますか?
詳細はわかりませんが、一部のパッケージとライブラリは、ファイルをそのようにインストールし、パスを使用してファイルをインストールするため、pkg-config
を使用して正しいパスを見つけることができます。
polkit
はありませんが、ここでは、glib-2.0
について、pkg-config
に、ライブラリglib-2.0
( 「cflags」は、Cコンパイラで使用するフラグであり、リンク時に追加するインクルードパスとライブラリを指定します):
$ pkg-config --cflags --libs glib-2.0
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lglib-2.0
polkit-1
の場合は、$ pkg-config --cflags --libs glib-2.0polkit-1を実行すると思います。
これらのパラメーターを使用してコンパイルするには、それらをmakefileの変数に格納するか、結果をコピーするか、マンページの次の例のように、シェルで直接pkg-config
を呼び出すこともできます。
cc program.c $(pkg-config --cflags --libs gnomeui)
(実際、その例はMakefile
ルールですが、シェルでも実行できます。)
詳細については、マンページを参照し、.pc
、/usr/lib/pkgconfig
およびそれらの/usr/share/pkgconfig
対応物の下で使用可能な/usr/local
ファイルを確認してください。
AFAIK、これは外部ライブラリでコンパイルするためのポータブルな方法です。
Gilesのコメントに同意し、njsgのpkg_commandは素晴らしいと思います。
リンクエディタld、ライブラリファイルの検索を有効にする別の一般的な戦略は、ldのマニュアルページから環境変数LD_LIBRARY_PATH
にディレクトリを追加することです。
からman ld
The linker uses the following search paths to locate required shared libraries: 1. Any directories specified by -rpath-link options. 2. Any directories specified by -rpath options. The difference between -rpath and -rpath-link is that directories specified by -rpath options are included in the executable and used at runtime, whereas the -rpath-link option is only effective at link time. Searching -rpath in this way is only supported by native linkers and cross linkers which have been configured with the --with-sysroot option. 3. On an ELF system, for native linkers, if the -rpath and -rpath-link options were not used, search the contents of the environment variable "LD_RUN_PATH". 4. On SunOS, if the -rpath option was not used, search any directories specified using -L options. 5. For a native linker, the search the contents of the environment variable "LD_LIBRARY_PATH".
その他のオプションについては、manページをお読みください。
パッケージを再配置しないでください。