最近在复习高等数学,有时为了验证顺便复习下C语言,看了看自己下载收集的软件,发现C语言有一个数学工具包,是GNU开发的,叫做GSL——GNU Scientific Library,中文:C++科学计算库,主页为www.gnu.org/s/gsl/,主要是在linux环境下运行的,幸好牛人们已经做好了windows版的移植(有条件的就在linux下编译gsl喽),有:Gsl for Windows - GnuWin32 - SourceForge,https://code.google.com/p/oscats/(gsl-1.15-dev-win32.zip
  5.9 MB),也可以在windows下安装MSYS或是cygwin下编译源代码获得适合在windows下运行的动态链接库等,具体的我也不太清楚,网上看了,具体的编译流程比较复杂,索性直接下载牛人们编译好的。

目前,gsl最新版本是1.16,本人下载的是高手预编译好的的1.15版(也有适用于VC6.0的较低版本的GSL-1.4,http://www6.in.tum.de/~kiss/WinGsl.htm,也有gsl-1.8.exe的),够用就行。在ishare共享网里有下载。

这里先介绍怎么在VS2005上使用GSL。

我在网上下载了VS2005的绿色版本,保留VC++部分,GSL的安装步骤如下:

1、将bin文件下的两个.dll文件复制到C:\Program Files\Microsoft Visual Studio 10.0\VC\bin文件夹下。

2、将lib文件下的两个.lib文件复制到C:\Program Files\Microsoft Visual Studio 10.0\VC\lib文件夹下。

3、将include文件下的gsl文件夹复制到C:\Program Files\Microsoft Visual Studio 10.0\VC\include文件夹下。

具体的目录要具体分析,只要找到VC的目录即可顺藤摸瓜。

在VS上建立一个“不带预编译文件的空项目”,该方式下不需要#include "stdafx.h"(试验总结),而后添加C文件,

示例代码如下:

/*
int gsl_integration_qng (const gsl_function * f, double a, double b, double epsabs, double epsrel, double *result, double *abserr, size_t * neval); 这个函数将用10点、21点、43点、87点的gauss-krondrod积分来计算直到误差在允许范围之内,
函数返回积分结果result、使用的积分点数neval、绝对误差值估计值abserr。a,b是积分上下限,
epsabs为绝对误差上限,epsrel为相对误差上限。 f是一个结构体,它指明要积分的表达式函数。
*/ //#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <gsl/gsl_sf_bessel.h>
#include <gsl/gsl_integration.h> //visualsan@yahoo.cn
double fx(double x, void*params)
{
return sin(x)/x;
} //visualsan@yahoo.cn
double fcos(double x, void*params)
{
return cos(x)/x;
} //int _tmain(int argc, _TCHAR* argv[])
int main (void)
{
printf("hello world\n"); double x;
x=5.0;
double y = gsl_sf_bessel_J0(x);
printf( "J0(%g) = %.18e\n", x, y ); gsl_function f;
f.function=fx; double r,er;
unsigned int n;
gsl_integration_qng(&f,1,2,1e-10,1e-10,&r,&er,&n); printf("result=%f\n",r);
printf("abserr=%f\n",er);
printf("neval=%d\n",n); gsl_function f_cos;
f_cos.function=fcos; double cos_r,cos_er;
unsigned int cos_n; printf("hello world\n"); gsl_integration_qng(&f_cos,1,2,1e-10,1e-10,&cos_r,&cos_er,&cos_n);
printf("cosine result=%f\n",cos_r);
printf("cosine abserr=%f\n",cos_er);
printf("cosine neval=%d\n",cos_n); printf("hello world\n");
printf("hello world\n"); return 0;
}

如果此时编译,或有很多错误,而后确认下“右击项目名,选择“属性>>C/C++>>高级”中是否是“编译为C++代码”(编译为C代码不通过),在“C/C++>>预编译头”选择“不使用预编译”最后,需要设置附加依赖库,项目属性->链接器->输入>Additional Dependencies(附加依赖项) 添加:libgsl-0.lib libgslcblas-0.lib,这样编译后,就可以了,运行结果为:

hello world
J0(5) = -1.775967713143382600e-001
result=0.659330
abserr=0.000000
neval=21
hello world
cosine result=0.085577
cosine abserr=0.000000
cosine neval=21
hello world
hello world
请按任意键继续. . .

当然,也可以把gsl库安装在DEV C++中,VS6.0,这些以后记录。另外,在VS2005建立过程中也以选择带#include "stdafx.h"的工程,然而,我很不喜欢这样!据说是为了加快编译速度的,可我习惯了Linux里的编程方式,so.......

以上步骤均由实验总结而得到的。哪里不对的请指点,谢谢!

VS2005下使用GSL-1.15小结的更多相关文章

  1. 在Linux下禁用IPv6的方法小结

    在Linux下禁用IPv6的方法小结--http://www.jb51.net/LINUXjishu/335724.html 这篇文章主要介绍了在Linux下禁用IPv6的方法小结,禁用IPv6的操作 ...

  2. IIS7.0下 HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求

    IIS7.0下 HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求   IIS7.0下查询条件太多时,会报错,因为IIS 7对于Query Str ...

  3. GSL 1.15 and 1.16 building with Visual Studio 2010 --FROM 4fire

    http://4fire.wordpress.com/2012/03/18/gsl-1-15-building-with-visual-studio-2010/ Update 05/02/2014: ...

  4. Visual Stdio 环境下使用 GSL (GNU Scientific Library)

    Visual Stdio 环境下使用 GSL (GNU Scientific Library) 经測试.这里的方法不适用于VS2015. * 这篇文章有点过时了.建议从以下网址下载能够在 vs 环境下 ...

  5. Linux下的解压命令小结

    Linux下常见的压缩包格式有5种:zip tar.gz tar.bz2 tar.xz tar.Z 其中tar是种打包格式,gz和bz2等后缀才是指代压缩方式:gzip和bzip2 filename. ...

  6. VS2005下开发PPC2003和WM50编译器一些设置

    1.vs2005开发WM5时,编译器和linker的选项配合问题 链接:http://www.mivi.name/blog/index_en.php?itemid=258 首先说ARM4 ARM4T ...

  7. CentOS6.8下安装Nginx-1.9.15

    1. 简介 Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器. Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BS ...

  8. VS2005下如何安装配置编译Qt4.6

    本文将使用简单的几个步骤说明在VC 2005下如何编译安装并开发Qt4.6应用程序,其实大部分方法和Qt4.6.0是一样的,不过Qt4.6.0集成了Qt Creater,目录的形式有点改变了,现在我就 ...

  9. VS2005下第一个ATL

    作者:kagula 日期:  2008-9-2 环境: [1]VisualStudio2005简体中文版(必需已经安装C语言开发环境支持) [2]WinXP+SP3 读者要求: 初步使用过Visual ...

随机推荐

  1. 【HDOJ6662】Acesrc and Travel(树形DP,换根)

    题意:有一棵n个点的树,每个点上有两个值a[i],b[i] A和B在树上行动,A到达i能得到a[i]的偷税值,B能得到b[i],每次行动只能选择相邻的点作为目标 两个人都想最大化自己的偷税值和对方的差 ...

  2. Microsoft SQL Server 简介

    SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行M ...

  3. postgresql主从同步配置

    前言 不久前,公司的一台物理机器硬件坏了,导致运行在其上的虚拟机都挂了.很不凑巧的是,我负责的那台虚拟机的系统盘坏了(ps:感觉老天在玩我),导致里面的数据永远的离我而去(ps:当时我的内心是崩溃的) ...

  4. NOIp 数学知识点总结

    推荐阅读 NOIp 基础数论知识点总结: https://www.cnblogs.com/greyqz/p/number.html 排列组合 常用公式 排列:\[\displaystyle A_n^m ...

  5. vue路由vue-router的安装和使用

    1.安装,如果你没有在创建项目时候选择的情况下  cnpm install vue-router 2.使用    假设App为根组件,两个自定义组件home及list main.js里操作 impor ...

  6. Vagrant 手册之 Provisioning - 基本用法

    原文地址 虽然 Vagrant 提供了用于配置虚拟机的多个选项,但是有标准用法,好多知识点对这个 provisioner 是通用的. 配置 首先,Vagrantfile 中配置的每个 provisio ...

  7. spring容器、spring MVC容器以及web容器的区别

    本文转载自 https://www.cnblogs.com/xiexin2015/p/9023239.html 说到spring和springmvc,其实有很多工作好多年的人也分不清他们有什么区别,如 ...

  8. SQL计算两个时间段相隔时间

    SQL语句: select cast(floor(datediff(minute,时间1,时间2) / 1440) as varchar)+'天'+ cast(floor((datediff(minu ...

  9. css画百分比圆环

    html: <div class="circle"> <div class="percent-circle percent-circle-left&qu ...

  10. [BZOJ 4771]七彩树(可持久化线段树+树上差分)

    [BZOJ 4771]七彩树(可持久化线段树+树上差分) 题面 给定一棵n个点的有根树,编号依次为1到n,其中1号点是根节点.每个节点都被染上了某一种颜色,其中第i个节点的颜色为c[i].如果c[i] ...