não pode encontrar -lgsl quando eu tento usar o arm-linux-gcc

0

Olá, sou novo no Ubuntu.

Agora estou usando o Lubuntu 15.04. arm-linux-gcc e gsl foi instalado e eu posso usar o gcc para compilar o arquivo exe com gsl. Mas quando eu tento usar o arm-linux-gcc para compilar arquivos exe eu recebo um erro

"/usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lgsl"

Este é o código que usei para compilação cruzada.

 $ arm-linux-gcc -o fft_test fft_test.c -L/home/peter/gsl/lib -I/home/peter/gsl/include -lgsl -lgslcblas -lm
    
por Rui Sun 02.03.2016 / 14:27

1 resposta

0

Parece que você não instalou o libgsl em seu sistema, já que o caminho /home/peter/gsl não é um caminho onde o Ubuntu instala binários. Eu só posso supor que você tenha baixado apenas fontes de libgls do servidor GNU e as tenha descompactado para /home/peter/gsl . Isto não é canônico. Você não precisa baixar o libgsl manualmente, porque o Ubuntu já oferece milhares de bibliotecas e ferramentas em pacotes a partir de seus próprios repositórios online. Para gerenciar pacotes (baixar, instalar e remover), você deve usar a ferramenta apt-get .

UPD: Conforme sugerido nos comentários, você está tentando compilar seu aplicativo para ser executado na plataforma ARM. Isso requer alguns passos adicionais. Eu suponho que o Linux distro instalado em seu dispositivo ARM é de 32 bits e está usando ABI armhf / hard-float ( btw, o Ubuntu oficial não fornece binários soft-float ).

Adicione novas arquiteturas e repositórios online ao seu Ubuntu:

REL=$(lsb_release -sc)
sudo dpkg --add-architecture armhf

sudo add-apt-repository "deb [arch=armhf] http://ports.ubuntu.com/ ${REL} main universe multiverse restricted"
sudo add-apt-repository "deb [arch=armhf] http://ports.ubuntu.com/ ${REL}-updates main universe multiverse restricted"
sudo add-apt-repository "deb [arch=armhf] http://ports.ubuntu.com/ ${REL}-security main universe multiverse restricted"
sudo add-apt-repository "deb [arch=armhf] http://ports.ubuntu.com/ ${REL}-restricted main universe multiverse restricted"
sudo add-apt-repository "deb [arch=armhf] http://ports.ubuntu.com/ ${REL}-backports main universe multiverse restricted"

sudo apt-get update

Agora você pode instalar ferramentas para compilação cruzada e versão ARM da libgsl:

sudo apt-get install crossbuild-essential-armhf libgsl0-dev:armhf

Você pode tentar compilar seu aplicativo:

arm-linux-gnueabihf-gcc -o fft_test fft_test.c -lgsl -lgslcblas -lm

Note que não há nenhum parâmetro -L ou -I , já que todos os arquivos libgsl foram instalados em locais acessíveis pelo compilador.

    
por stunpix 02.03.2016 / 15:51