Использование GSL с Cygwin G ++ - PullRequest
4 голосов
/ 07 октября 2009

пытается заставить научную библиотеку 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», даже если файл заголовка найден.

Любая помощь с благодарностью!

1 Ответ

4 голосов
/ 07 ноября 2009

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

<code>
 #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.

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

...