作者:彭军 邮件:hellotim##foxmail.com 近来帮朋友编译一个SIFT匹配的程序,可是里面不仅用到了OpenCV,而且用到了GSL,但是在编译的过程中,OpenCV的配置是没有什么问题了,可是GSL一直不行,在用VC6.0进行编译的时候,总是出现类似与如下的错误: xform.obj : error LNK2001: unresolved external symbol _gsl_rng_free 一想既然是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 Creating library libgsl.lib and object libgsl.exp D:/Program Files/GnuWin32/lib>lib /machine:i386 /def:libgslcblas.def 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.youkuaiyun.com/source/1352136 你可以在这里下载GSL(GNU Scientific Library)1.8: |
使用GNU Scientific Library(GSL)及GSL的配置(转自彭军)
最新推荐文章于 2024-10-28 08:00:00 发布
2009年05月26日 12:45