Embora eu tenha instalado a biblioteca GSL, o g ++ não pode compilar meu código

6

Para usar a biblioteca gnu gsl, eu a instalei com o seguinte comando:

  

sudo apt-get instala libgsl0ldbl

Quando escrevo um código c ++ simples apenas para verificar se o instalei corretamente ou não, o g ++ diz que

  

erro fatal: gsl / gsl_vector.h: Nenhum arquivo ou diretório desse tipo

Meu código pode ser visto abaixo:

#include <iostream>
#include <gsl/gsl_vector.h>
#include <gsl/gsl_statistics.h>
using namespace std;
int main()
{
return 0;
}

qual pode ser o motivo? Desde já, obrigado. [Estou tentando executá-lo no Ubuntu 14.04 64-Bit]

editar Eu tentei compilá-lo com o seguinte comando

  

g ++ teste.cpp

    
por stackunderflow 13.05.2015 / 22:06

1 resposta

9

Existem vários pacotes libgsl, como mostrado por um apt-cache search :

$ apt-cache search libgsl
libgsl0-dbg - GNU Scientific Library (GSL) -- debug symbols package
libgsl0-dev - GNU Scientific Library (GSL) -- development package
libgsl0ldbl - GNU Scientific Library (GSL) -- library package
libocamlgsl-ocaml - GNU scientific library for OCaml
libocamlgsl-ocaml-dev - GNU scientific library for OCaml

Mais detalhadamente, apt-cache show libgsl0ldbl inclui a descrição

 This package provides the shared libraries required to run programs
 compiled with GNU GSL. To compile your own programs you also need to
 install libgsl0-dev.

considerando que apt-cache show libgsl0-dev

 This package contains the header files, static libraries and symbolic
 links that developers using GNU GSL will need.

então, neste caso, você precisa instalar o libgsl0-dev

sudo apt-get install libgsl0-dev

Essa é uma distinção bastante comum no sistema de pacotes Ubuntu / Debian: geralmente há um pacote de "tempo de execução" e um pacote de "desenvolvimento" que é indicado por um sufixo -dev . O pacote -dev é o único a procurar ao criar o software a partir do código-fonte - ele instalará o pacote de tempo de execução como uma dependência, se necessário.

    
por steeldriver 13.05.2015 / 22:25