Как заставить Научную Библиотеку Гну работать в Cygwin - PullRequest
1 голос
/ 06 сентября 2011

Я использую gsl и Cygwin, и для начала я пытаюсь скомпилировать очень простую программу (которую я позже назову из программы на Фортране).Я не могу его скомпилировать из-за проблем с поиском файлов gsl.Код:

#include <gsl/gsl_math.h>

void gslgateway_(double *x, double *res){
   *res = gsl_atanh(*x);
}

Когда я пытаюсь скомпилировать его:

gcc -c gslgateway.c

Я получаю следующую ошибку:

gslgateway.c:1:26: error: gsl/gsl_math.h: No such file or directory

Если я изменю первыйстрока

#include <C:/cygwin/usr/include/gsl/gsl_math.h>

, затем gsl_math.h найден, но куча других файлов нет:

In file included from gslgateway.c:1:
C:/cygwin/usr/include/gsl/gsl_math.h:23:25: error: gsl/gsl_sys.h: No such file or directory
...

Итак, проблема, похоже, заключается в пути к файлам библиотеки.Но, как я ни стараюсь, я не могу установить это правильно.Я использовал gsl-config, как было предложено на Использование GSL с cygwin g ++ , и это дает мне

-L/usr/include

, поэтому я попытался скомпилировать его, используя опцию, но я получил тот же результат.Я также пытался установить LD_LIBRARY_PATH в / usr / lib, / usr / include, C: / cygwin / usr / include и несколько других комбинаций, но ничего не работает.

Я не знаю, что еще попробовать сейчас,Кто-нибудь может увидеть, что мне не хватает?

(Другая информация: у меня установлен gsl-devel. По крайней мере, я попросил установщик Cygwin установить его, и я могу найти папку / usr / include / gslон содержит gsl_math.h среди многих других файлов. Я не знаю, есть ли что-то еще, что мне нужно сделать там.)

1 Ответ

1 голос
/ 06 сентября 2011

Поскольку мое предположение оказалось верным, я опубликую его как ответ.

Похоже, вы используете компилятор MinGW. MinGW не является частью Cygwin, поэтому он не понимает пути в стиле Cygwin. Вот почему ваш компилятор смог найти C:/cygwin/usr/include/, но не /usr/include.

...