Ubuntu 16.0464ビットOSを使用しています
走ったとき
$ Sudo pip3 install gattlib
このエラーメッセージが表示されました
/ usr/bin/ld:-lboost_python-py34が見つかりません
collect2:エラー:ldが1つの終了ステータスを返しました
エラー:コマンド 'x86_64-linux-gnu-g ++'が終了ステータス1で失敗しました
私はこれを解決する方法をグーグルで試しましたが、何もうまくいきません
Pythonでgatttoolを使用したいので、これをインストールする必要があります
どうすればこれを解決できますか?
PS。私はすでにlibboost-devをダウンロードしました
pip3 download gattlib
tar xvzf ./gattlib-0.20150805.tar.gz
cd gattlib-0.20150805/
sed -ie 's/boost_python-py34/boost_python-py35/' setup.py
pip3 install .
そして、python 3.7の場合、次のことを行う必要があります。
pip3 download gattlib
tar xvzf ./gattlib-0.20150805.tar.gz
cd gattlib-0.20150805/
sed -ie 's/boost_python-py34/boost_python37/' setup.py
pip3 install .
ベンジャミンのソリューションが機能しない場合は、35から36に変更してみてください。つまり、以下のコードを試してください。
pip3 download gattlib
tar xvzf ./gattlib-0.20150805.tar.gz
cd gattlib-0.20150805/
sed -ie 's/boost_python-py34/boost_python-py36/' setup.py
pip3 install .
PyGattlibに続いて [〜#〜] depends [〜#〜] すべての依存関係には、「ライブラリのコンパイルフラグとリンクフラグを管理する」ためのpkg-configが含まれています。これは解決しました
/usr/bin/ld: cannot find -lboost_python-py36
パッケージのインストール依存関係を更新しましたが、機能します。
RUN install_packages \
python3-dev \
libbluetooth-dev \
libboost-python-dev \
libboost-thread-dev \
libglib2.0-dev \
pkg-config
RUN python3 -m pip install pygattlib
Docker Balena.ioUbuntu「バイオニックビーバー」
これは、Raspberry 2、Rasbian Buster、およびPython 3で機能します。Python 3ライブラリの名前は異なるようです。「boost_python_py34を置き換えることでバグを簡単に解決できます。 setup.pyでブーストライブラリを指定する場合は、boost_python3を使用します。」
sed -ie 's/boost_python-py37/boost_python3/' setup.py
ライブラリ:
/usr/lib/arm-linux-gnueabihf/libboost_python3.a
/usr/lib/arm-linux-gnueabihf/libboost_python3-py37.a
/usr/lib/arm-linux-gnueabihf/libboost_python3-py37.so
/usr/lib/arm-linux-gnueabihf/libboost_python3.so
RPI-3Bで次のエラーが発生しました。
cc1plus:警告:コマンドラインオプション '-Wstrict-prototypes'はC/ObjCには有効ですが、C++には有効ではありませんsrc/gattservices.cpp:6:33:致命的なエラー:bluetooth/bluetooth.h:そのようなファイルはありませんまたはディレクトリ#include ^コンパイルが終了しました。エラー:コマンド 'arm-linux-gnueabihf-gcc'が終了ステータス1で失敗しました
[1]次のコマンドを実行すると、解決に役立ちました。
Sudo apt-get install libbluetooth-dev
[2]また、フォルダ「gattlib-0.20150805」を削除し、「tar xvzf ...」を使用して再作成すると、ファイルに残っている以前のコンパイルをクリーンアップするのに役立ちました。