2

libusbwith modified libusbfor androidを使用するツールをコンパイルしようとしています。Modifiedlibusbはコンパイルされ/usr/local/lib、期待どおりにインストールされました。問題は、スタンドアロンtoolchainに既に含まれてlibusbおり、リンク/コンパイルに問題があることです。

./configure

戻り値:

...
checking for usb_get_string_simple in -lusb... yes
...

それでlibusb、大丈夫だとわかったら。

ただし、スタンドアロンの場合toolchain:

export CROSS_COMPILE=arm-linux-androideabi
export CC=${CROSS_COMPILE}-gcc
export CXX=${CROSS_COMPILE}=g++
export NDK=/softdev/android-ndk-r8e
export ANDROID_NDK_ROOT=/softdev/android-ndk-r8e
export SYSROOT=$NDK/platforms/android-8/arch-arm
export PATH=/softdev/arm-toolchain/bin:$PATH:/softdev/android-ndk-r8e/platforms/android-8/arch-arm

./configure --build=x86-unknown-linux-gnu --host=arm-linux-androideabi --target=arm-linux-androideabi

戻り値:

...
checking for usb_get_string_simple in -lusb... no
...

スタンドアロンで動作させる方法はtoolchainlibusb-0.1使用されている

4

1 に答える 1

1

さて、ついに私はそれを修正することができました。

  1. ツール configure.ac ファイルは、libusb-compat を使用することを考慮して作成されていません (ただし、libusb-0.1 のみ)。

だから私はlibusb-0.1(-lusb-1.0)を検索しながら依存関係を追加することでそれを解決しました:

AC_CHECK_LIB([usb], [usb_get_string_simple], [have_libusb=yes], [], [-lusb-1.0])

2. もう 1 つの問題は、AC_CHECK が標準システムの /usr/local/lib フォルダーにないライブラリを検出するようにすることでした。これは、変更されたライブラリ インターフェイスが少し異なり、AC_CHECK_LIB で検索中にシステム 1 で gcc を試行したためです。CPPFLAGS を使用して正しいライブラリ パスを設定しました

于 2013-07-26T08:51:30.863 に答える