Estou tentando executar 2 exemplos simples em c / c ++ usando a biblioteca científica GNU .
Esses são os códigos:
1º: Um exemplo de programa
#include <stdio.h>
#include <gsl/gsl_sf_bessel.h>
int main (void)
{
double x = 5.0;
double y = gsl_sf_bessel_J0 (x);
printf ("J0(%g) = %.18e\n", x, y);
return 0;
}
2º:
Programas de exemplo para matrizes
#include <stdio.h>
#include <gsl/gsl_matrix.h>
int main (void)
{
int i, j;
gsl_matrix * m = gsl_matrix_alloc (10, 3);
for (i = 0; i < 10; i++)
for (j = 0; j < 3; j++)
gsl_matrix_set (m, i, j, 0.23 + 100*i + j);
for (i = 0; i < 100; i++) /* OUT OF RANGE ERROR */
for (j = 0; j < 3; j++)
printf ("m(%d,%d) = %g\n", i, j,
gsl_matrix_get (m, i, j));
gsl_matrix_free (m);
return 0;
}
Eu vi no Centro de Software que eu tenho o GNU Biblioteca Científica (GSL) - pacote de bibliotecas (libgsl0ldbl 1.16 + dfsg-1ubuntu1) mas a documentação que li dizia que precisava compilar com o próximo código:
$ gcc -Wall -I/usr/local/include -c example.c
E o diretório /usr/local/include
estava vazio, então eu também instalei manualmente a partir do site GSL principal - site da Biblioteca Científica GNU a nova versão GSL2.1 . Em seguida eu corro o código antes mencionado então eu tive um novo arquivo example.o então eu corro o próximo código:
$ gcc -L/usr/local/lib example.o -lgsl -lgslcblas -lm
Então, eu tinha um arquivo a.out
, tentei executar $ ./a.out
, mas a saída foi:
'./a.out: error while loading shared libraries: libgsl.so.19: cannot open shared object file: No such file or directory'
Eu também tentei este comando:
$ ldconfig -p | grep gsl
libgslcblas.so.0 (libc6,x86-64) => /usr/lib/libgslcblas.so.0
libgsl.so.0 (libc6,x86-64) => /usr/lib/libgsl.so.0
Então eu posso ver que a execução de a.out
estava pedindo libgsl.so.19
, mas o ldconfig disse que a biblioteca no pc é libgsl.so.19