OpenCV搭建GSL环境
为了用粒子滤波算法,需要搭建GSL环境。网上的方法有很多,按着步骤做总还是有做不明白或者最后搭建失败的情况。折腾了一番最后成功搭建起来了,在这里把过程分享给大家希望能帮助到大家。
配置:Win7+VS2013+OpenCV2.4.10+GSL1.8
下载GSL1.8,下载地址:http://download.csdn.net/download/xuxinchao84/3299818
下载得到的是两个.exe的文件,分别点击安装。安装时记下自己的安装位置,后续配置的时候需要用到这个位置。比如笔者就是安装在了D:\Program Files这个目录下。安装完成后会自动生成GnuWin32这个文件夹。在刚才生成的GnuWin32文件夹里打开名为lib的文件夹,会发现里面并没有.lib类型的文件,只有几个扩展名为.def和.a的文件,因此需要进行转换。
点击:开始–程序–Visual Studio 2013–Visual Studio Tools–VS2013 x64 兼容工具命令提示
这里使用的是VS自带的CMD命令行来跑出我们需要的.lib文件。
注意:不能使用Windows自带的CMD命令。在打开的CMD命令框中依次输入:
D:
回车,接着输入
cd Program Files
再回车,接着输入
cd GnuW32
回车,输入
cd lib这样一来我们就用CMD进入了lib文件夹了。以上是针对我的两个GSL文件安装在了D:\Program Files 目录下了。如果安装在了别的目录下,只需要修改对应的文件夹名称即可,CD这两个字母注意不要忘了哦,CD与文件夹名称之间的空格也不要漏了哦。也有指出只需要一次性输入 CD D:\Program Files\GnuWin32\lib 回车就可以直接进入文件夹的,但是笔者尝试过并不能直接进入,还是老老实实一个一个打开吧。
在进入lib文件夹之后,在依次输入:lib /machine:i386 /def:libgsl.def
lib /machine:i386 /def:libgslcblas.def注意以上两句命令其中的空格不能少了(空格都分别在两个/的左边),否则就会转换失败。转换成功的话就会出现如下提示:
这下在回去看一下自己GSL下的lib文件夹,是不是已经生成了两个.lib文件了呢。添加Path环境变量:
桌面的计算机→右键→属性→高级系统设置→高级→环境变量→在系统变量中找到path,复制GunWin32的bin目录进去(注意,与前一个变量用英文的分号隔开),重启计算机。
接着
将GnuWin32\bin中的libgsl.dll和libgslcblas.dll复制到VS的安装目录bin文件夹中。如我的安装目录就在D:\Program Files\Microsoft Visual Studio 10.0\VC\Bin;
将GnuWin32\include文件夹里的内容复制到VS的安装目录include文件夹中。如我的目录就是D:\Program Files\Microsoft Visual Studio 10.0\VC\include下
将GnuWin32\lib目录下的所有.lib文件全部复制到VS的安装目录lib文件夹中为了保险起见,最好还是需要到VS里面去指定路径。
打开VS,创建一个控制台应用程序,在属性管理器窗口右键打开打开属性对话框,选择:配置属性→VC++目录:
依次在
“包含目录”添加GunWin32文件夹里的include文件夹
“库目录”添加GunWin32文件夹里的lib文件夹
“源目录”添加GunWin32文件夹里的\src\gsl\1.8文件夹
选择:连接器→输入→附加依赖项:
添加附加依赖项:
libgsl.lib
libgslcblas.lib
选择:项目→属性→c/c++→预处理器→预处理器定义→添加 GSL_DLL
7.
最后,实验代码:
#include <iostream>
#include <gsl_sf.h>
int main()
{
std::cout << gsl_sf_gamma_inc( 1.5, 0.5 ) << std::endl;
std::cout << gsl_sf_gamma_inc_Q( 1.5, 0.5 ) << std::endl;
std::cout << gsl_sf_gamma_inc_P( 1.5, 0.5 ) << std::endl;
std::cin.get();
return 0;
}
生成结果:
至此,GSL环境终于搭建好了,可以愉快地使用粒子滤波算法啦~