windows下GSL的配置

一、GSL介绍

GNU科学计算函数库GSL(GNU Scientific Library)是一个强大的C/C++数值计算函数库,它是一个自由软件,是GNU项目软件的一个部分,遵循GPL协议。GSL是一个为C和C++程序员提供的科学数值运算库。该科学计算库异常强大,函数库提供了大量的数值计算程序

 

,如随机函数、特殊函数和拟合函数等等,整个函数库大约有1000多个函数,几乎涵盖了科学计算的各个方面。提供了如下方面的支持:

Complex Numbers          Roots of Polynomials           Special Functions

Vectors and Matrices        Permutations                  Sorting

BLAS Support             Linear Algebra                 Eigensystems

Fast Fourier Transforms      Quadrature                    Random Numbers

Quasi-Random Sequences    Random Distributions           Statistics

Histograms                N-Tuples                     Monte Carlo Integration

Simulated Annealing        Differential Equations           Interpolation

Numerical Differentiation    Chebyshev Approximation       Series Acceleration

Discrete Hankel Transforms   Root-Finding                 Minimization

Least-Squares Fitting        Physical Constants             IEEE Floating-Point

Discrete Wavelet Transforms                              Basis splines

 

该函数库的主页是:http://www.gnu.org/software/gsl/gsl.html。不过遗憾的是原始GSL并不支持不支持windows平台,可所幸的是有人做了GSL在windows上的移植工作,详见http://gnuwin32.sourceforge.net/packages/gsl.htm,目前版本是1.8。

二、下载gsl

1、从http://gnuwin32.sourceforge.net/packages/gsl.htm下载Complete package, except sources和Sources两个exe文件。

 

三、安装

1、 首先安装从http://gnuwin32.sourceforge.net/packages/gsl.htm下载的两个文件gsl-1.8.exe和gsl-1.8-src.exe。

 

四、设置Visual C++ 6.0编译环境

 1、生成lib文件。发现安装目录lib下并没有libgsl.lib,libgslcblas.lib这两个文件,倒是有两个扩展名为def和a(linux下库文件包格式)的文件,因此必须进行转换。

l          开始菜单,点击运行,输入cmd。

l          进入gsl库的lib目录下依次输入以下两条语句:
    lib /machine:i386 /def:libgsl.def
    lib /machine:i386 /def:libgslcblas.def

再看lib目录下,发现有了libgsl.lib,libgslcblas.lib这两个文件。

 2、将x:/Program Files/GnuWin32l/bin中的libgsl.dll和libgslcblas.dll复制到x:/VC98/Bin;将/include整个Gsl目录复制到x:/VC98/include下;/lib目录下的所有.lib文件全部复制到x:/VC98/Lib下。

3、 新建一个工程用于测试,。然后在该项目的project-settings-link,在object/library modules中加入你用到的库文件,如libgsl.lib libgslcblas.lib,用空格隔开。

五、测试Gsl函数库

#define GSL_DLL
#include <gsl/gsl_spline.h>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <gl/glut.h>
#include <gl/gl.h>
void Display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    const size_t n = 4;
    double x[] = {0,0.333336,0.666666,1};
    double y[] = {0,0.5,0.9,0};
    gsl_interp* interps[3] = {NULL,NULL,NULL};
    interps[0] = gsl_interp_alloc(gsl_interp_linear,n);
    interps[1] = gsl_interp_alloc(gsl_interp_polynomial,n);
    interps[2] = gsl_interp_alloc(gsl_interp_cspline,n);
    gsl_interp_init(interps[0],x,y,n);
    gsl_interp_init(interps[1],x,y,n);
    gsl_interp_init(interps[2],x,y,n);
    gsl_interp_accel* acc = gsl_interp_accel_alloc();
    glBegin(GL_LINE_STRIP);
        for(double t=0.0; t<=1.025; t+=0.025)
        {
            glColor3f(1,0,0);
            glVertex3f(t,gsl_interp_eval(interps[0],x,y,t,acc),0.0);
        }
    glEnd();
    glBegin(GL_LINE_STRIP);
        for(double t=0.0; t<=1.025; t+=0.025)
        {
            glColor3f(0,1,0);
            glVertex3f(t,gsl_interp_eval(interps[1],x,y,t,acc),0.0);
        }
    glEnd();
    glBegin(GL_LINE_STRIP);
        for(double t=0.0; t<=1.025; t+=0.025)
        {
            glColor3f(0,0,1);
            glVertex3f(t,gsl_interp_eval(interps[2],x,y,t,acc),0.0);
        }
    glEnd();
    gsl_interp_accel_free(acc);
    gsl_interp_free(interps[0]);
    gsl_interp_free(interps[1]);
    gsl_interp_free(interps[2]);
    glutSwapBuffers();
}
int main(int argc, char** argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
    glutInitWindowSize(512,512);
    glutCreateWindow("GSL Interpolation");
    glutDisplayFunc(Display);
    glClearColor(1,1,1,1);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glTranslatef(-1,-1,0);
    glScalef(2,2,1);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glViewport(0,0,512,512);
    glLineWidth(4.0);
    glutMainLoop();
    return 0;
}运行结果:

 

说明Gsl函数库已经可以使用了。

要想进行上述测试,还需要已经安装了opengl库。

转载:http://blog.csdn.net/mooncircle/article/details/5545448

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Qt5环境下配置GSL(GNU Scientific Library),需要以下步骤: 1. 下载GSL库的源代码,可以从GSL官方网站(https://www.gnu.org/software/gsl/)下载最新版本的源代码。 2. 解压下载的源代码文件,并将解压后的文件夹重命名为"gsl"。 3. 打开Qt5的开发环境,创建一个新的Qt项目。 4. 将解压后的gsl文件夹复制到Qt项目目录下。 5. 在Qt项目中,打开.pro文件(Qt的项目配置文件),在文件的末尾添加以下内容: ```bash INCLUDEPATH += $$PWD/gsl LIBS += -L$$PWD/gsl/.libs -lgsl -lgslcblas -lm ``` 上述代码将会告诉Qt编译器在编译时去找到GSL库所在的位置。 6. 保存并关闭.pro文件。 7. 在Qt项目中,打开main.cpp文件,添加以下代码: ```cpp #include <gsl/gsl_math.h> #include <gsl/gsl_sf_bessel.h> int main(int argc, char *argv[]) { gsl_sf_bessel_J0(5.0); // 使用GSL函数进行示例计算 return 0; } ``` 为了确保GSL库已经正确安装并能够在Qt项目中使用,可以使用一些GSL函数进行示例计算。 8. 保存并运行Qt项目,如果没有报错信息并成功运行,说明在Qt5环境下配置GSL已经完成。 需要注意的是,上述步骤假设你已经正确地安装了Qt5开发环境,并且你的系统已经配置了正确的编译器和链接器。另外,在上述步骤中使用的路径和文件名是基于示例情况,可能需要根据实际情况进行调整。 ### 回答2: 在Qt5环境下配置GSL(GNU科学库)可以按照以下步骤进行: 1. 首先,从GSL的官方网站(https://www.gnu.org/software/gsl/)下载最新的源代码压缩包。 2. 解压缩源代码,并进入解压后的文件夹。 3. 打开终端,并切换到解压后的文件夹中。 4. 在终端中运行以下命令来配置GSL的安装路径: ```shell ./configure --prefix=<安装路径> ``` 其中,`<安装路径>`是你希望GSL安装的目标路径,可以是你的系统默认路径,或者你自己选择的其他路径。 5. 运行以下命令进行编译: ```shell make ``` 这将会编译GSL的源代码。 6. 运行以下命令进行安装: ```shell make install ``` 这将会将GSL安装到你指定的安装路径中。 7. 完成安装后,你可以在Qt项目中引入GSL的头文件,并链接GSL的库文件。例如,在Qt的`.pro`文件中添加以下代码: ```shell INCLUDEPATH += <安装路径>/include LIBS += -L<安装路径>/lib -lgsl ``` 其中,`<安装路径>`是你之前配置GSL的安装路径。 8. 重新编译你的Qt项目,确保能够成功链接GSL库。 以上是在Qt5环境下配置GSL的简要步骤。通过按照这些步骤配置GSL,你就可以在Qt项目中使用GSL进行科学计算了。 ### 回答3: 在Qt5环境下配置GNU Scientific Library (GSL) 需要进行以下步骤: 1. 下载GSL库:首先,从GSL的官方网站(https://www.gnu.org/software/gsl/)下载最新版本的GSL库文件。 2. 解压缩GSL库:将下载的GSL库文件解压缩到您选择的目录。 3. 配置Qt项目文件:打开您的Qt项目文件(.pro文件),并添加以下行: ``` INCLUDEPATH += /path/to/gsl/include LIBS += -L/path/to/gsl/lib -lgsl -lgslcblas ``` 您需要将上述路径替换为您解压缩GSL库的实际路径。这些行将告诉Qt编译器在编译和链接项目时要包含GSL库的头文件和链接库。 4. 构建您的项目:保存并重新加载Qt项目文件,并构建您的项目。编译器应该能够找到GSL库的头文件和链接库,并将其与您的项目一起编译和链接。 5. 测试GSL库:为了确保成功配置GSL库,您可以在Qt项目中添加一些测试代码,并使用GSL的功能进行编程。例如,您可以使用GSL的数学函数、向量和矩阵操作等。 6. 运行项目:在构建成功后,您可以运行您的Qt项目,并验证GSL库是否按预期工作。 请注意,具体目录和库名称可能会根据您的操作系统和GSL库的版本而有所不同。在配置过程中请确保路径和库名称是正确的。 希望以上步骤能够帮助您在Qt5环境下成功配置GSL库。如果您遇到任何问题,请查阅GSL文档或参考在线资源来获取更详细的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值