GSL科学计算库的使用gsl1.8

GSL科学计算库的使用

  粒子滤波的代码中使用了GSL库,我从网上下载的gsl-1.11-windows-binaries.zip直接解压,类似OpenCV的配置方法,附加包含目录、附加库目录、附加依赖项,就能准确使用了。

  代码中包含库的头文件时必须的:#include <gsl/gsl_rng.h> #include <gsl/gsl_randist.h>。

      开头有这样几条语句:

 

    
    
gsl_rng_env_setup(); rng = gsl_rng_alloc( gsl_rng_mt19937 );
gsl_rng_set( rng, time(NULL) );

也不知道是啥意思!!

 

具体配置参考

http://www.dakaren.com/index.php/archives/412.htm

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mooncircle/archive/2010/04/30/5545448.aspx

注:由上文本人在win7系统下不能实现生成lib文件,总是说lib不是系统命令,所以本人有尝试了以下方法。
由def库文件导出lib库文件
研究SIFT算法的match部分时,需要gsl库支持。在windows下安装gsl1.8后,发现安装目录lib下并没有libgsl.lib,libgslcblas.lib这两个文件,倒是有两个扩展名为def和a(linux下库文件包格式)的文件。

在windows下其实是可以通过def导出lib格式的库文件的。方法如下:

开始菜单处打开vs2005 tools下的Visual Studio 2005 命令提示,进入gsl库的lib目录下依次输入以下两条语句:
lib /machine:i386 /def:libgsl.def
lib /machine:i386 /def:libgslcblas.def
再看lib目录下,发现有了libgsl.lib,libgslcblas.lib这两个文件。


http://blog.csdn.net/jyc1228/archive/2009/08/12/4437447.aspx

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
http://hi.baidu.com/pengjun/blog/item/2e810ff40b867f66ddc47492.html

使用GNU Scientific Library(GSL)及GSL的配置
2009年05月26日 12:45

作者:彭军

邮件:hellotim##foxmail.com

近来帮朋友编译一个SIFT匹配的程序,可是里面不仅用到了OpenCV,而且用到了GSL,但是在编译的过程中,OpenCV的配置是没有什么问题了,可是GSL一直不行,在用VC6.0进行编译的时候,总是出现类似与如下的错误:

xform.obj : error LNK2001: unresolved external symbol _gsl_rng_free
xform.obj : error LNK2001: unresolved external symbol _gsl_rng_set
xform.obj : error LNK2001: unresolved external symbol _gsl_rng_alloc
xform.obj : error LNK2001: unresolved external symbol _gsl_rng_mt19937
xform.obj : error LNK2001: unresolved external symbol _gsl_sf_choose
xform.obj : error LNK2001: unresolved external symbol _gsl_rng_uniform_int

一想既然是LINK时的错误,肯定是lib文件有关系了。看到GSL的lib文件夹下面并没有后缀名为lib的文件。但是又看到有后缀名为def的文件,我知道通过def文件是可以导出dll和lib文件的了。而且在网络上也看到可以用VS的lib命令来导出适合VS用的.lib文件,于是打开cmd窗口。

D:\Program Files\GnuWin32\lib>lib /machine:i386 /def:libgsl.def
Microsoft (R) Library Manager Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

   Creating library libgsl.lib and object libgsl.exp

D:\Program Files\GnuWin32\lib>lib /machine:i386 /def:libgslcblas.def
Microsoft (R) Library Manager Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

   Creating library libgslcblas.lib and object libgslcblas.exp

D:\Program Files\GnuWin32\lib>

可以看到lib文件夹下已经有了libgsl.lib和libgslcblas.lib这样的话,我们只要将这两个lib文件添加到工程Link页中就可以了,如下:

当然了,要用GSL的话,也需要在VC的目录中添加GSL的include目录、lib目录和bin目录,如下:

从添加的Include目录可以看出,当你用GSL里面的头文件时,需要类似与这样的引用:

#include <gsl/gsl_rng.h>

当然,如果你在添加Include目录是添加的是:D:\Program Files\GnuWin32\include\gsl

那么就不需要前面的gsl,只要如此引用就可以了:#include <gsl_rng.h>

还有一点需要说明的是GSL中已经没有gsl_rng_free.h了,所以你需将其改为gsl_rng.h

你可以在这里下载这个经典SIFT的图像匹配程序的VC程序:

http://download.csdn.net/source/1352136

你可以在这里下载GSL(GNU Scientific Library)1.8:

http://download.csdn.net/source/1352070


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值