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

来源:互联网 发布:保定seo价格 编辑:程序博客网 时间:2024/06/09 22:08

        最近要写一个类似于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


原创粉丝点击