Использование GSL с cygwin g++

пытаясь заставить научную библиотеку Gnu (gsl) работать в cygwin g++.

Cygwin устанавливается и обновляется со всеми параметрами по умолчанию, включая gsl:runtime, gsl-apps и gsl-doc. Я пробую пример программы, приведенный на веб-сайте gsl:

http://www.gnu.org/software/gsl/manual/html_node/An-Example-Program.html

включать

 #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;
 }

Кто-нибудь будет так любезен, чтобы дать мне версию вышеуказанной программы, которая действительно работает с g++? Файл заголовка нигде не найти с этой установкой по умолчанию. Как получить доступ к dll?

Я также попытался установить «gsd-devel» (инструменты разработчика) не по умолчанию, который дает мне доступ к файлу заголовка, но при компиляции я получаю «Неопределенная ссылка на« gsl__sf_bessel_J0 »», хотя файл заголовка нашел.

Любая помощь очень ценится!


person Community    schedule 07.10.2009    source источник


Ответы (1)


Я также новичок в CygWin и GSL, и после некоторых исследований я думаю, что ответ заключается в том, что необходимые библиотеки не связаны. Вместе с GSL поставляется небольшой умный инструмент под названием gsl-config. Вы можете использовать это, чтобы получить информацию о связывании с библиотеками. Итак, в вашем случае код:


 #include <gsl/gsl_sf_bessel.h>
 #include <stdio.h>
 int
 main (void)
 {
   double x = 5.0;
   double y = gsl_sf_bessel_J0 (x);
   printf ("J0(%g) = %.18e\n", x, y);
   return 0;
 }
может быть скомпилирован с использованием g++ bessel.cpp -lm -lgsl -o bessel.out -L/usr/bin, где бит -lm -lgsl -L/usr/bin является результатом ввода gsl-config --lib-without-cblas. Протестируйте с помощью ./bessel.out.

Надеюсь, это поможет, т.

person Community    schedule 07.11.2009