This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux: Unable to install 32-bit version of libraries in ubuntu for ARM processor

Tool/software: Linux

Hi,

I am cross compiling Shairport-sync application for Beaglebone black which is having 32-bit microprocessor. While Cross compiling I am getting following error:

/usr/bin/gcc-cross/arm-linux-gnuabi/5/../../../../arm-linux-gnueabi/bin/ld:Cannot find -lconfig

So, I have to install the 32-bit version libconfig library in ubuntu. 

I can able to install for intel processor. But,

How can I install 32-bit version of libraries in ubuntu for ARM processor?

Can you please suggest me any solution?

Thanks in advance

Manimekala.R

  • Hi,

    I suggest you try the toolchain provided with TI Processor SDK Linux:
    www.ti.com/.../processor-sdk-am335x

    Best Regards,
    Yordan
  • Hi,

    Thank you for your prompt reply. 

    Already I installed the same SDK that you referred in my PC (Ubuntu Platform). 

    I created the bootable SD card for my board by executing createsdcard.sh available on the SDK. Now, my Beagle bone black board is having 4.9.28 version of linux when I am booting from SD card. 

    I want to install Shairport-sync application in my board. But I could not use apt-get install (not available) in the board when it is booting from sdcard. So, I have decided to cross compile shairport-sync in the host machine(Ubuntu Platform) for the target Beaglebone black (linux 4.9.28). For that I configured shairport-sync using the following parameters:

    $ ./configure - - build=x86_64-linux-gnu - -host=arm-linux-gnueabihf  - -target=arm-linux-gnueabihf CC=arm-linux-gnueabi-gcc --sysconfdir=/etc --with-alsa --with-pa --with-tinysvcmdns --with-ssl=openssl --with-metadata --with-systemd DAEMON_LIBS=-lpthread

    After this, I executed make command. I got the following errors when I am executing the make command:

    make all-recursive
    make[1]: Entering directory '/home/praveen/shairport-sync'
    Making all in man
    make[2]: Entering directory '/home/praveen/shairport-sync/man'
    make[2]: Nothing to be done for 'all'.
    make[2]: Leaving directory '/home/praveen/shairport-sync/man'
    make[2]: Entering directory '/home/praveen/shairport-sync'
    /usr/bin/arm-linux-gnueabi-g++ -g -O2 -L/home/praveen/X_compile_libs -o shairport-sync shairport.o rtsp.o mdns.o mdns_external.o common.o rtp.o player.o alac.o audio.o loudness.o mdns_tinysvcmdns.o tinysvcmdns.o audio_alsa.o audio_pa.o -lpulse -lasound -lssl -lcrypto -lconfig -lpopt -lm -lpthread -lpthread -lrt
    /usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lconfig
    collect2: error: ld returned 1 exit status
    Makefile:539: recipe for target 'shairport-sync' failed
    make[2]: *** [shairport-sync] Error 1
    make[2]: Leaving directory '/home/praveen/shairport-sync'
    Makefile:617: recipe for target 'all-recursive' failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/home/praveen/shairport-sync'
    Makefile:425: recipe for target 'all' failed
    make: *** [all] Error 2

    Can you please help me to solve this issue?

    Thanks in advance

    Manimekala R

  • Try exporting the path to the cross compiler and the architecture:
    export PATH=~/ti-processor-sdk-linux-am57xx-evm-04.00.00.04/linux-devkit/sysroots/x86_64-arago-linux/usr/bin:$PATH
    export ARCH=arm

    Best Regards,
    Yordan
  • Hi, 

    Thank you for your replies and suggestions.

    Finally I installed libconfig in Beagle bone black board itself by providing internet connection using Ethernet cable.

    I used the following commands to install libconfig:

    $wget http://www.hyperralm.com/packages/libconfig-1.4.10.tar.gz

    $tar -xvzf libconfig-1.4.10.tar.gz

    $cd libconfig-1.4.10

    $./configure 

    $make

    $make install