From: Anton S. <de...@an...> - 2013-07-25 12:28:16
|
Hello. I have very strange problem that i tried to solve for 2 days and no result. A tool i try to compile for ARM uses libusb-0.1 and i've compiled and installed libusb-1.0 and usblib-compat-0.1.5. both libs are compiled with: 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 make make clean .a files are in /usr/local/lib. header are in '/usr/local/include' and '/usr/local/include/usblib-1.0'. now i'm trying to compile the tool for ARM: export CFLAGS="-I/usr/local/include" export LDFLAGS="-L/usr/local/lib -static" ./configure --build=x86-unknown-linux-gnu --host=arm-linux-androideabi --target=arm-linux-androideabi make clean make and libusb is not detected as installed (config.log): onfigure:4582: arm-linux-androideabi-gcc -o conftest -I/usr/local/include -L/usr/local/lib -static conftest.c -lusb >&5 /softdev/arm-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /usr/local/lib/libusb.a(libusb_la-core.o): in function usb_interrupt_io:core.c:836: error: undefined reference to 'libusb_interrupt_transfer' /softdev/arm-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /usr/local/lib/libusb.a(libusb_la-core.o): in function usb_bulk_io:core.c:791: error: undefined reference to 'libusb_bulk_transfer' /softdev/arm-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /usr/local/lib/libusb.a(libusb_la-core.o): in function _usb_finalize:core.c:142: error: undefined reference to 'libusb_exit' /softdev/arm-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /usr/local/lib/libusb.a(libusb_la-core.o): in function usb_init:core.c:153: error: undefined reference to 'libusb_init' /softdev/arm-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /usr/local/lib/libusb.a(libusb_la-core.o): in function usb_init:core.c:161: error: undefined reference to 'libusb_set_debug' core.c has #include <libusb.h>, libusb.h is in /usr/local/include/, compiler is invoked with -I/usr/local/lib parameter - still getting error. Interesting fact is that i'm trying to link statically and it can be compiled without "-static" parameter (and libusb is detected in that case)! I can't imagine where is the problem and i can't compile a tool statically. |
From: Xiaofan C. <xia...@gm...> - 2013-07-26 03:12:17
|
On Thu, Jul 25, 2013 at 8:28 PM, Anton Smirnov <de...@an...> wrote: > Hello. > > I have very strange problem that i tried to solve for 2 days and no result. > > A tool i try to compile for ARM uses libusb-0.1 and i've compiled and > installed libusb-1.0 and usblib-compat-0.1.5. both libs are compiled with: > > 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 > make > make clean > > .a files are in /usr/local/lib. header are in '/usr/local/include' and > '/usr/local/include/libusb-1.0'. That can not be the valid directory since it will be for your system library and not your cross-compiler. You should put them in the correct directory. -- Xiaofan |
From: Xiaofan C. <xia...@gm...> - 2013-07-26 05:59:10
|
On Fri, Jul 26, 2013 at 11:16 AM, Anton Smirnov <de...@an...> wrote: > I've installed compiled for arm libraries to system lib folders temporarily, > just to compile the tool. I know it's wrong in general case but just to > check I believe it should work. Is using system lib folder for arm libs the > reason? Please reply to the list. -- Xiaofan |
From: Xiaofan C. <xia...@gm...> - 2013-07-26 05:59:59
|
On Fri, Jul 26, 2013 at 1:02 PM, Anton Smirnov <de...@an...> wrote: > okay, i've tried to use specific (not system paths) to arm libs, but this > did not help (config.log file part): > ... > configure:4582: arm-linux-androideabi-gcc -o conftest -I/usr/local/include > -L/usr/local/lib > -L/Users/asmirnov/Documents/dev/src/rtl_tcp_andro/jni/libusb-andro/libusb > -L/Users/asmirnov/Documents/dev/src/libusb-compat-0.1.5/libusb -static > conftest.c -lusb >&5 > /softdev/arm-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > /usr/local/lib/libusb.a(libusb_la-core.o): in function > usb_interrupt_io:core.c:836: error: undefined reference to > 'libusb_interrupt_transfer' > ... > > I've checked that folders to have .a files. > What can i do to get more detailed error output or information that can > help? Please reply to the list. Thanks. -- Xiaofan |
From: Xiaofan C. <xia...@gm...> - 2013-07-26 06:03:07
|
On Fri, Jul 26, 2013 at 1:54 PM, Anton Smirnov <de...@an...> wrote: > I've configured libs with prefix /softdev/arms-libs and installed them. > Then i try to configure tool again with corrected paths and still getting an > error: > configure:4557: checking for usb_get_string_simple in -lusb > configure:4582: arm-linux-androideabi-gcc -o conftest > -I/softdev/arm-libs/include -L/softdev/arm-libs/lib -static conftest.c > -lusb >&5 > /softdev/arm-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > /softdev/arm-libs/lib/libusb.a(libusb_la-core.o): in function > usb_interrupt_io:core.c:836: error: undefined reference to > 'libusb_interrupt_transfer' > > it's intersting, but i can't understand how it could be (config.log part): > ... > checking libusb-1.0/libusb.h usability... yes > checking libusb-1.0/libusb.h presence... no > ... > > but > > MacBook-Air-Anton:RELEASE_5_11_0 asmirnov$ ls /softdev/arm-libs/include/ > libusb-1.0 usb.h > MacBook-Air-Anton:RELEASE_5_11_0 asmirnov$ ls > /softdev/arm-libs/include/libusb-1.0/ > libusb.h > > so > > libusb-1.0/libusb.h presence... no should be yes as i passed > -I/softdev/arm-libs/include > > what's wrong? anyone? > Please reply to the list. Thanks. You may have to check with your software package developer for support. Maybe the configure scripts does not support cross build quite well. Also you may want to remove "-static" which may not work well with cross build. You should try to remove it first to see if that works. -- Xiaofan |
From: Anton S. <de...@an...> - 2013-07-26 06:04:47
|
---------- Переадресованное сообщение ---------- От: "Anton Smirnov" <de...@an...> Дата: 26.07.2013 11:54 Тема: Re: [libusb] cross-compilation of tool that uses libusb Кому: "Xiaofan Chen" <xia...@gm...> Копия: I've configured libs with prefix /softdev/arms-libs and installed them. Then i try to configure tool again with corrected paths and still getting an error: configure:4557: checking for usb_get_string_simple in -lusb configure:4582: arm-linux-androideabi-gcc -o conftest -I/softdev/arm-libs/include -L/softdev/arm-libs/lib -static conftest.c -lusb >&5 /softdev/arm-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /softdev/arm-libs/lib/libusb.a(libusb_la-core.o): in function usb_interrupt_io:core.c:836: error: undefined reference to 'libusb_interrupt_transfer' it's intersting, but i can't understand how it could be (config.log part): ... checking libusb-1.0/libusb.h usability... yes checking libusb-1.0/libusb.h presence... no ... but MacBook-Air-Anton:RELEASE_5_11_0 asmirnov$ ls /softdev/arm-libs/include/ libusb-1.0 usb.h MacBook-Air-Anton:RELEASE_5_11_0 asmirnov$ ls /softdev/arm-libs/include/libusb-1.0/ libusb.h so libusb-1.0/libusb.h presence... no should be yes as i passed -I/softdev/arm-libs/include what's wrong? anyone? 2013/7/26 Anton Smirnov <de...@an...> > okay, i've tried to use specific (not system paths) to arm libs, but this > did not help (config.log file part): > ... > configure:4582: arm-linux-androideabi-gcc -o conftest -I/usr/local/include > -L/usr/local/lib > -L/Users/asmirnov/Documents/dev/src/rtl_tcp_andro/jni/libusb-andro/libusb > -L/Users/asmirnov/Documents/dev/src/libusb-compat-0.1.5/libusb -static > conftest.c -lusb >&5 > /softdev/arm-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > /usr/local/lib/libusb.a(libusb_la-core.o): in function > usb_interrupt_io:core.c:836: error: undefined reference to > 'libusb_interrupt_transfer' > ... > > I've checked that folders to have .a files. > What can i do to get more detailed error output or information that can > help? > > > 2013/7/26 Anton Smirnov <de...@an...> > >> I've installed compiled for arm libraries to system lib folders >> temporarily, just to compile the tool. I know it's wrong in general case >> but just to check I believe it should work. Is using system lib folder for >> arm libs the reason? >> 26.07.2013 9:12 пользователь "Xiaofan Chen" <xia...@gm...> написал: >> >> On Thu, Jul 25, 2013 at 8:28 PM, Anton Smirnov <de...@an...> >>> wrote: >>> > Hello. >>> > >>> > I have very strange problem that i tried to solve for 2 days and no >>> result. >>> > >>> > A tool i try to compile for ARM uses libusb-0.1 and i've compiled and >>> > installed libusb-1.0 and usblib-compat-0.1.5. both libs are compiled >>> with: >>> > >>> > 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 >>> > make >>> > make clean >>> > >>> > .a files are in /usr/local/lib. header are in '/usr/local/include' and >>> > '/usr/local/include/libusb-1.0'. >>> >>> That can not be the valid directory since it will be for your system >>> library and not your cross-compiler. You should put them in the >>> correct directory. >>> >>> -- >>> Xiaofan >>> >> > |
From: Anton S. <de...@an...> - 2013-07-26 06:05:43
|
I can confirm it works without static. 26.07.2013 12:03 пользователь "Xiaofan Chen" <xia...@gm...> написал: > On Fri, Jul 26, 2013 at 1:54 PM, Anton Smirnov <de...@an...> > wrote: > > I've configured libs with prefix /softdev/arms-libs and installed them. > > Then i try to configure tool again with corrected paths and still > getting an > > error: > > configure:4557: checking for usb_get_string_simple in -lusb > > configure:4582: arm-linux-androideabi-gcc -o conftest > > -I/softdev/arm-libs/include -L/softdev/arm-libs/lib -static conftest.c > > -lusb >&5 > > > /softdev/arm-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > > /softdev/arm-libs/lib/libusb.a(libusb_la-core.o): in function > > usb_interrupt_io:core.c:836: error: undefined reference to > > 'libusb_interrupt_transfer' > > > > it's intersting, but i can't understand how it could be (config.log > part): > > ... > > checking libusb-1.0/libusb.h usability... yes > > checking libusb-1.0/libusb.h presence... no > > ... > > > > but > > > > MacBook-Air-Anton:RELEASE_5_11_0 asmirnov$ ls /softdev/arm-libs/include/ > > libusb-1.0 usb.h > > MacBook-Air-Anton:RELEASE_5_11_0 asmirnov$ ls > > /softdev/arm-libs/include/libusb-1.0/ > > libusb.h > > > > so > > > > libusb-1.0/libusb.h presence... no should be yes as i passed > > -I/softdev/arm-libs/include > > > > what's wrong? anyone? > > > > Please reply to the list. Thanks. > > You may have to check with your software package developer for support. > Maybe the configure scripts does not support cross build quite well. > > Also you may want to remove "-static" which may not work well with > cross build. You should try to remove it first to see if that works. > > -- > Xiaofan > |
From: Xiaofan C. <xia...@gm...> - 2013-07-26 06:13:16
|
On Fri, Jul 26, 2013 at 2:05 PM, Anton Smirnov <de...@an...> wrote: > I can confirm it works without static. > Glad it helps. -- Xiaofan |
From: Anton S. <de...@an...> - 2013-07-26 06:17:30
|
No, it does not help - i still need to get statically build tool with all libs inside and it can't be compiled because libusb can't be found with '-static' configuration of the tool.. 2013/7/26 Xiaofan Chen <xia...@gm...> > On Fri, Jul 26, 2013 at 2:05 PM, Anton Smirnov <de...@an...> > wrote: > > I can confirm it works without static. > > > > Glad it helps. > > > -- > Xiaofan > |
From: Xiaofan C. <xia...@gm...> - 2013-07-26 07:33:40
|
On Fri, Jul 26, 2013 at 2:17 PM, Anton Smirnov <de...@an...> wrote: > No, it does not help - i still need to get statically build tool with all > libs inside and it can't be compiled because libusb can't be found with > '-static' configuration of the tool.. It is not the problem of libusb any more. You need to check with the software package developer -- the configure scripts does not work well with -static. I am not an expert here but I think it is not easy to get static build working in many cases. Others will probably help you better. Still why do you need static in the first place? -- Xiaofan |
From: Anton S. <de...@an...> - 2013-07-26 08:15:23
|
Well, finally i was able to fix it. 1. the tool configure.ac file was not written in account to using libusb-compat (only) libusb-0.1. So i solved it by adding dependency while searching libusb-0.1 (-lusb-1.0): AC_CHECK_LIB([usb], [usb_get_string_simple], [have_libusb=yes], [], [-lusb-1.0]) 2. Another problem was to make AC_CHECK find libs not in standard system /usr/local/lib folder as modified library interface was a bit different and it tried to gcc with system one while searching with AC_CHECK_LIB. Thanks. 2013/7/26 Xiaofan Chen <xia...@gm...> > On Fri, Jul 26, 2013 at 2:17 PM, Anton Smirnov <de...@an...> > wrote: > > No, it does not help - i still need to get statically build tool with > all > > libs inside and it can't be compiled because libusb can't be found with > > '-static' configuration of the tool.. > > It is not the problem of libusb any more. You need to check with the > software package developer -- the configure scripts does not work > well with -static. > > I am not an expert here but I think it is not easy to get static > build working in many cases. Others will probably help you better. > > Still why do you need static in the first place? > > -- > Xiaofan > |
From: Xiaofan C. <xia...@gm...> - 2013-07-27 02:47:25
|
On Fri, Jul 26, 2013 at 4:10 PM, Anton Smirnov <de...@an...> wrote: > Well, finally i was able to fix it. > > 1. the tool configure.ac file was not written in account to using > libusb-compat (only) libusb-0.1. > So i solved it by adding dependency while searching libusb-0.1 (-lusb-1.0): > > AC_CHECK_LIB([usb], [usb_get_string_simple], [have_libusb=yes], [], > [-lusb-1.0]) > > 2. Another problem was to make AC_CHECK find libs not in standard system > /usr/local/lib folder as modified library interface was a bit different > and it tried to gcc with system one while searching with AC_CHECK_LIB. > Glad that you fixed the problem and thanks for reporting back. -- Xiaofan |