您的位置:首页 > 编程语言 > C语言/C++

在Visual C++ 2005中使用 GNU Scientific Library

2013-04-28 00:17 363 查看
最近要写一个类似于SPSS的统计学软件,需要用到很多数学函数和公式,顿时感觉头痛。上网无意中发现了GNU的开源的PSPP(GNU那帮大神们为了抵制SPSS的商业化闭源而做的和SPSS几乎功能完全一样的软件,连起的名字都相反。),发现它调用的是GNU Scientific Library库。上网搜了下发现这个库相当强大。于是准备用Visual C++ 2005来调用这个库函数来解决数学公式的问题。

1.下载安装GNU Scientific Library:

首先要到http://gnuwin32.sourceforge.net/packages/gsl.htm(这个网站一直打不开,但使用国外的代理可以打开)上下载“Complete package, except sources"和”Sources“这两个安装文件,下载下来是gsl-1.8.exe和gsl-1.8-src.exe,当然也可以下载后面的压缩包来选择其他安装方式。

运行gsl-1.8.exe和gsl-1.8-src.exe,选择安装路径。我的选择是D:\Program Files\GnuWin32。

2.在VS2005中配置GNU Scientific Library

首先要生成lib文件。在安装目录文件夹lib下并没有libgsl.lib,libgslcblas.lib这两个文件,只有两个扩展名为def和a(linux下库文件包格式)的文件,所以要转换成lib格式文件,使用菜单中的Visual Studio Tools下的命令程序去转换libgsl.def和libgslcblas.def(网上不推荐使用XP系统自带的CMD命令程序)。

进入gsl库的lib目录下依次输入以下两条语句:

lib /machine:i386 /def:libgsl.def

lib /machine:i386 /def:libgslcblas.def

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

打开VS2005,在工具——>选项——>项目和解决方案——>VC++目录中:

右边的列表框中:

在下拉菜单”可执行文件“的目录中,将安装文件的bin文件夹绝对路径添加上去;



在下拉菜单”包含文件“的目录中,将安装文件的include文件夹绝对路径添加上去;



在下拉菜单”库文件“的目录中,将安装文件的lib文件夹绝对路径添加上去;



最后,将安装文件夹下的bin目录中libgsl.dll和libgslcblas.dll两个文件拷贝至VS2005的安装文件夹下面的\Microsoft Visual Studio 8\VC\bin中去,否则在程序编译时会出现找不到这两个文件的问题。

注意在新建项目时要在“项目——>属性——>配置属性——>链接器——>输入”中添加libgsl.lib 和libgslcblas.lib。否则编译的链接过程会出现问题。



以上工作完成后,可以用网上的一段程序来测试配置的情况。

#include <iostream>

#include <gsl/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;

       return 0;

}


运行结果:



感谢以下网友所提供的技术帮助:
http://www.cnblogs.com/suda/archive/2012/03/03/2378644.html http://blog.csdn.net/jyc1228/article/details/4437447
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: