Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >VS2005下使用GSL-1.15小结

VS2005下使用GSL-1.15小结

作者头像
用户4645519
发布于 2020-09-07 02:50:36
发布于 2020-09-07 02:50:36
80400
代码可运行
举报
文章被收录于专栏:嵌入式学习嵌入式学习
运行总次数:0
代码可运行

最近在复习高等数学,有时为了验证顺便复习下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文件,

示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
 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,这样编译后,就可以了,运行结果为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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....... 以上步骤均由实验总结而得到的。哪里不对的请指点,谢谢!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014/04/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
VS内存泄漏工具Visual Leak Detector2.5.1安装与使用
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/chaipp0607/article/details/79182471
chaibubble
2019/05/26
2.5K0
VC使用pugixml读取XML树形结构菜单
    pugixml是一个简单方便的XML操作库,pugixml的官网是:http://pugixml.org/我们在上面可以下载得到最新版本的pugixml库。下载后主要使用里面的三个源文件,如下图。
用户3519280
2023/07/06
3160
XML实例
TinyXML是一个非常小巧简单的XML解析库,采用DOM方式来解析XML文件。不足的是它本身不支持DTD和XSL,但普通简单的XML使用需求还是可以满足了。
用户3519280
2023/07/06
2020
预编译
预编译 涉及到: #define #define 标识符 字符串 ---》 等价替换 比如: #define NUM 5 NUM就是5 , #define NUM 5; #ifdef 类似if语句 #include "stdafx.h" #include <stdlib.h> #include <string.h> //#define 标识符 字符串 ---》 等价替换 比如: #define NUM 5 NUM就是5 , #define NUM 5
包子388321
2020/06/16
3040
window 动态库的创建和使用
File--新建---工程--win32 Dynamic-link Library   输入工程名和位置,即可进入动态库界面。
用户4148957
2022/06/14
1.1K0
GSL+DevC++使用
在DEV C++中配置GSL1.8库 前面写了如何在vs2005中添加gsl,本文所所述为在dev c++中使用gsl库,由实践总结而得。 准备软件: 1、Orwell Dev C++ 5.6.2 No Compiler Setup.exe(devc++的社区升级版,很不错的) 2、gsl-1.8.exe 3、TDM-GCC4.7.1-2.exe,安装后,目录同样名为mingw32(也可以安装mingw版) 步骤如下: 1、安装完以上3个软件。 2、将 gsl 安装目录下的 bin 下 libgsl.dll,libgslcblas.dll 复制到mingw32的bin目录中,lib 下 ibgsl.a,libgslcblas.a 复制到 mingw32目录下的 lib 目录下;include 下的整个 gsl 文件夹复制到mingw32目录下的 include 目录下。 3、 打开 dev-c++,工具-编译选项-编译器,选上“在连接器命令行加入如下命令”,加入-lgsl -lgslcblas(中间有空格,即在连接时连上 libgsl.a,libgslcblas.a,gcc 可以自动识别前缀 lib 和后缀.a) 此时在用Dev C++打开一个gsl的c文件,如下所示:
用户4645519
2020/09/07
1.1K0
【编程练习】收集的一些c++代码片,算法排序,读文件,写日志,快速求积分等等
 c语言实现如下功能 输入全部文件名(绝对路径加文件名)得到,文件名,扩展名,文件长度
流川疯
2019/01/18
5400
简单的动态连接库,例子
的意思是指文中生成的obj文件应该与Test_of_dll.lib一起链接.或者可以在VC的工程中设置加载此lib
流川疯
2019/01/18
6910
做了Nebula3的应用程序向导
使用方法: 1. 配置环境变量: image.png 2. 把下载的zip解压到一个合适的位置 3. 把N3ConsoleAppWizard.ico, N3ConsoleAppWizard.vsdir, N3ConsoleAppWizard.vsz三个文件拷贝到Visual Studio 8/VC/vcprojects/下, 并更改N3ConsoleAppWizard.vsz中的路径为第2步中的解压路径 4. 打开VS2005, 新建工程就可以看到了 image.png image.png ima
逍遥剑客
2018/06/25
4540
VC++ 6.0 转VS2005以上版本(2)
最近开发平台由VC6.0升级至VS2005,需要将原有的项目迁移,特将碰到的问题归纳如下:
用户3519280
2023/07/06
2630
gsoap开发webservice
gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构,这样就使得用户必须改变程序结构来适应相关的类库。与之相反,gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现细节相关的内容对用户隐藏起来。 gSOAP的编译器能够自动的将用户定义的本地化的C或C++数据类型转变为符合XML语法的数据结构,反之亦然。
cloudskyme
2018/03/20
1.9K0
gsoap开发webservice
extern用法总结!
在源文件A里定义的函数,在其他源文件中是看不见的(即不能訪问)。为了在源文件B里能调用这个函数,应该在B的头部加上一个外部声明:
全栈程序员站长
2022/07/12
5690
科普 | DLL劫持原理与实践
DLL劫持算是一个老的漏洞,而且乌云漏洞库中也有很多的案例,只不过案例更多的只是验证一下,并没有教如何利用。至于为什么专门抓起来再学一遍了,唉,内网渗透需要
HACK学习
2019/09/04
5.1K0
科普 | DLL劫持原理与实践
VS2022中cmath.h头文件功能介绍
在C语言的世界里,数学运算一直是程序开发中不可或缺的一部分。无论是进行简单的数值计算,还是处理复杂的科学工程问题,都需要借助数学函数来实现。在Visual Studio 2022(VS2022)中,cmath.h(在C语言中通常为math.h)头文件为我们提供了丰富的数学函数和常量,极大地简化了数学运算的实现过程。今天,我们就来深入探讨一下cmath.h头文件的功能、使用注意事项以及一些拓展应用,帮助大家更好地掌握这一强大的工具。
siy2333
2025/02/12
1250
SkinSharp用法
尽管SkinSharp是收费软件,但提供试用版,并且比較厚道,试用版没有过于“碍眼”的标志,此skin Sharp仅仅在UI窗体的右上角放一个小衣服的logo图标而已;相比SkinCrafter等弹注冊窗体好多了
全栈程序员站长
2021/11/18
6110
SkinSharp用法
VC6下OpenGL 开发环境的构建外加一个简单的二维网络棋盘绘制示例
一、安装GLUT 工具包 GLUT 不是OpenGL 所必须的,但它会给我们的学习带来一定的方便,推荐安装。 Windows 环境下的GLUT 本地下载地址:glut-install.zip(大小约为150k)。 也可直接去官方网站下载:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip Windows 环境下安装GLUT 的步骤: 1)将下载的压缩包解压,得到5 个文件放到以下三个指定位置: 2)glut.h 放到GL 文件夹
Zoctopus
2018/06/04
1.1K0
windows下C++如何调用matlab程序
该文介绍了如何利用Matlab进行图像处理,包括图像的读取、显示、处理,以及用C++调用Matlab函数进行图像处理的过程。
MachineLP
2018/01/09
1.9K0
Leptonica在VS2010中的编译及简单使用举例
在tesseract-ocr中会用到leptonica库。这里对leptonica简介下。
全栈程序员站长
2022/07/10
1.1K0
VS2013+python+boost.
    解压boost.python后,用VS的[本机命令提示工具](开始-VS2013-VS Tools)进入到boost的文件夹,运行bootstrap.bat生成bjam.exe。然后运行:
py3study
2020/01/03
8030
c++ warning C4996
测试使用发现  #pragma warning(disable:4996)这是有效的方式  #define _CRT_SECURE_NO_DEPRECATE依然报错
用户7886150
2021/02/16
1.5K0
相关推荐
VS内存泄漏工具Visual Leak Detector2.5.1安装与使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验