使用GSL和cygwin g ++

时间:2009-10-07 04:41:42

标签: 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'”,即使找到头文件。

任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:4)

我是CygWin&amp;的新手。 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进行测试。

希望这有帮助,T