Как заставить Научную Библиотеку Гну работать в Cygwin

Я использую 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 ответ

Решение

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

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

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