必須ライブラリをインストールせずにパッケージをコンパイルする

必須ライブラリをインストールせずにパッケージをコンパイルする

コンパイルしようとしましたbluez-utils-3.36が、試した後構成パッケージでエラーメッセージが発生しました。configure: error: Bluetooth library is required が表示されます。

質問:私アップデートやインストールは許可されていません。このマシンのすべてはコンパイルのみ可能です。だから唯一の方法は図書館を指すことだと思います。だから私は./configure -help2つのオプションを書いて見つけました。

  BLUEZ_CFLAGS    C compiler flags for BLUEZ, overriding pkg-config

  BLUEZ_LIBS      linker flags for BLUEZ, overriding pkg-config

だからこれを私のコマンドに追加し、パスを補完しました。

./configure --prefix=/home/black/test/ltib/rootfs BLUEZ_CFLAGS=-I~/home/black/test/bluetooth/bluez-libs-3.36/include BLUEZ_LIBS="-L~/home/black/test/bluetooth/bluez-libs-3.36/src/.libs -lbluetooth"

これでエラーなしでうまく機能します。

ただし、コマンドを実行すると、次makeのようなエラーが発生します。

glib-helper.c:34:33: error: bluetooth/bluetooth.h: Datei oder Verzeichnis nicht gefunden
glib-helper.c:35:30: error: bluetooth/rfcomm.h: Datei oder Verzeichnis nicht gefunden
glib-helper.c:36:29: error: bluetooth/l2cap.h: Datei oder Verzeichnis nicht gefunden
glib-helper.c:37:27: error: bluetooth/sco.h: Datei oder Verzeichnis nicht gefunden
glib-helper.c:38:27: error: bluetooth/sdp.h: Datei oder Verzeichnis nicht gefunden
glib-helper.c:39:31: error: bluetooth/sdp_lib.h: Datei oder Verzeichnis nicht gefunden

Datei oder Verzeichnis nicht gefundenドイツ語で次のことを意味します。folder or file not found

この問題をどのように解決できますか?

ベストアンサー1

コマンドに指定したパスに問題があるようですconfigure

./configure --prefix=/home/black/test/ltib/rootfs \
BLUEZ_CFLAGS=-I~/home/black/test/bluetooth/bluez-libs-3.36/include \
BLUEZ_LIBS="-L~/home/black/test/bluetooth/bluez-libs-3.36/src/.libs -lbluetooth"

この~文字の前にスペースがない場合は、ホームディレクトリパスに展開されません。次の出力を考慮してください。

$ echo  -I~/foo
-I~/foo

比較的:

$ echo  -I ~/foo
-I /home/lars/foo

修正を~適用して$HOMEも、パスは依然として疑わしいです。

~/home/black/test/bluetooth/bluez-libs-3.36/include

ユーザー名がと仮定すると、black次のように拡張されます。

/home/black/home/black/test/...

これはおそらく間違っているようです。

-Iパスを変更し-Lて構成を再実行してみてください。

おすすめ記事