Не удается найти файлы заголовков gsl при компиляции [дубликат]

Я совершенно новичок в Linux. Я только что установил Ubuntu 16.04 на старый компьютер и пытаюсь установить библиотеку gsl для проекта. Я запустил

sudo apt install libgsl2, libgsl0-dev, libgsl-dev, gsl-bin

Затем я создал тестовую программу gsltest.c с кодом

#include <stdio.h>
#include <gsl_rng.h>
#include <gsl_randist.h>

int main (int argc, char *argv[])
{
  /* set up GSL RNG */
  gsl_rng *r = gsl_rng_alloc(gsl_rng_mt19937);
  /* end of GSL setup */

  int i,n;
  double gauss,gamma;  

  n=atoi(argv[1]);
  for (i=0;i<n;i++)
    {
      gauss=gsl_ran_gaussian(r,2.0);
      gamma=gsl_ran_gamma(r,2.0,3.0);
      printf("%2.4f %2.4f\n", gauss,gamma);
    }
  return(0);
}

. Я скопировал код откуда-то из Интернета и выполнил следующую команду

gcc -Wall -I/home/myname/gsl/include -c gsltest.c

, которая выдает ошибку:

gsltest.c:2:21: fatal error: gsl_rng.h: No such file or directory compilation terminated.

Что я делаю не так?

0
задан 13 May 2017 в 01:04

1 ответ

Если бы Вы установили libgsl-dev, то заголовки должны быть в /usr/include/gsl/, следовательно компилятор должен смочь определить местоположение их, если Вы указываете -I/usr/include/gsl

, Или можно опустить -I директива в целом при изменении #includes на #include <gsl/gsl_randist.h> и т.д.

, С другой стороны, Вы могли бы хотеть рассмотреть использование pkg-config для определения местоположения заголовков автоматически, например,

gcc -Wall `pkg-config --cflags gsl` -c gsltest.c
1
ответ дан 3 November 2019 в 06:29

Другие вопросы по тегам:

Похожие вопросы: