Как удалить libusb из автономной цепочки инструментов Android?

Я пытаюсь скомпилировать инструмент, который использует libusb с модифицированным libusb для Android. Модифицированный libusb был скомпилирован и установлен в /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
...

как заставить его работать с автономным toolchain? libusb-0.1 используется


person 4ntoine    schedule 25.07.2013    source источник


Ответы (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. Еще одна проблема заключалась в том, чтобы заставить AC_CHECK находить библиотеки не в стандартной системной папке /usr/local/lib, так как модифицированный интерфейс библиотеки был немного другим, и он пытался выполнить gcc с системной при поиске с помощью AC_CHECK_LIB. Я использовал CPPFLAGS, чтобы установить правильный путь к библиотекам.

person 4ntoine    schedule 26.07.2013