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文件,如下所示:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <gsl/gsl_rng.h>
#include <gsl/gsl_randist.h>
#define MAXRNDNUM 100
int main(int argc, char * argv[])
{
const gsl_rng_type *T; // 随机数生成器类型指针
gsl_rng *r; // 随机数生成器指针
int i;
double u; // 随机数变量
const double erlang_a=0.6; // lambda=0.6
const double erlang_n=2.0; // n=2.0
// gsl_rng_default (gsl_rng_mt19937)
// gsl_rng_ranlxs0, gsl_rng_ranlxs1, gsl_rng_ranlxs2
// gsl_rng_ranlxd1, gsl_rng_ranlxd2
T = gsl_rng_ranlxs0;
gsl_rng_default_seed = ((unsigned long)(time(NULL))); // 取当前时间作为种子
r = gsl_rng_alloc(T); // 创建随机数生成器实例
for (i=0; i<MAXRNDNUM; i++)
{
/** Functions:
* double gsl_ran_erlang (const gsl_rng * r, const double a, const double n)
* double gsl_ran_erlang_pdf (const double x, const double a, const double n)
*/
u = gsl_ran_erlang(r, erlang_a, erlang_n); // 生成服从 Erlang 分布的随机数
printf("%.5f\n", u);
}
// 打印 0.0, 1.0 处的概率密度值
printf("erlang_pdf(0.0)=%.5f\n", gsl_ran_erlang_pdf(0.0, erlang_a, erlang_n));
printf("erlang_pdf(1.0)=%.5f\n", gsl_ran_erlang_pdf(1.0, erlang_a, erlang_n));
gsl_rng_free(r); // 释放随机数生成器
return 0;
}
点击 compile &run,即可运行,编译的命令如下:
General: mingw5
Executing gcc.exe...
gcc.exe "F:\GSL\example_practices\erlang_demo.c" -o "F:\GSL\example_practices\erlang_demo.exe" -m32 -g3 -lgsl -lgslcblas -I"C:\MinGW32\include" -L"C:\MinGW32\lib" -m32 -g3
Compilation succeeded in 0.33 seconds
运行结果:
0.90501
1.34102
0.53111
2.18400
1.10534
1.48317
0.59413
0.56080
0.10496
0.65189
1.21032
4.07168
0.71350
0.62467
1.78255
0.35549
1.08990
0.84559
3.24031
1.62870
2.33040
0.82586
1.34858
1.07816
0.71486
0.58534
1.69676
0.36377
1.39621
2.26477
1.46325
1.09332
0.45466
3.76635
0.61206
0.49410
1.08605
1.59985
1.04695
0.59166
0.09401
0.31422
0.72572
1.37264
3.60675
0.46318
0.70602
2.92091
3.14072
2.50999
0.38493
1.45044
1.23082
2.37491
2.02381
1.57281
1.45119
0.73306
1.09668
0.37983
0.74744
1.84946
0.62742
1.09751
0.44519
1.20147
0.28054
0.67864
1.37922
0.68963
0.77507
0.16112
2.46477
0.35400
3.24018
2.16743
0.52736
0.34015
3.33357
2.25478
1.69646
0.49001
0.60242
1.52576
1.34437
2.51762
3.05635
1.18719
1.27544
2.63845
2.04897
0.63952
0.87056
2.83859
0.69683
0.50104
0.91714
1.17773
1.72386
1.30541
erlang_pdf(0.0)=0.00000
erlang_pdf(1.0)=0.52465
--------------------------------
Process exited with return value 0
Press any key to continue . . .
若要是在devc++中建立了一个gsl的dev的工程,那么还需要做一下步骤,可参考如下:
1.Open Dev C++ and create a new project
2.Click Project->Project Options menu
3.Goto Directories tab
4.Goto "Include Directories" sub-tab
5.Enter C:\Program Files\GnuWin32\include and press Add button
6.Goto Parameters tab
7.Click on button "Add library or object"
8.Navigate and select C:\Program Files\GnuWin32\lib\libgsl.a
9.Click on button "Add library or object"
10.Navigate and select C:\Program Files\GnuWin32\lib\libgslcblas.a
9.Click on button "Add library or object"
10.Navigate and select C:\Program Files\GnuWin32\lib\libgslcblas.dll.a
11.Add the path C:\Program Files\GnuWin32\bin to system runtime, or copy the dlls libgsl.dll and libgslcblas.dll to the location where you want to run your .exe
GSL+DevC++使用的更多相关文章
- Windows下使用Dev-C++开发基于pthread.h的多线程程序
一.下载Windows版本的pthread 目前最新版本是:pthreads-w32-2-9-1-release.zip. 二.解压pthread到指定目录 我选择的目录是:E:\DEV-C ...
- 【gsl】生成随机数
来自:http://hsxqwanting.blog.163.com/blog/static/16945437201301042830815/ 使用GSL生成随机数时的三个步骤: (1)gsl_ ...
- linux 下安装gsl
访问 http://ftp.club.cc.cmu.edu/pub/gnu/gsl/下载最新版本的,现在最新的是gsl-1.16.tar.gz,已经是2013年更新的了.然后下载 安装 简便的安装过程 ...
- VC++编译GSL
目录 第1章 VC++ 1 1.1 修改行结束符 1 1.2 修改#include "*.c" 为 #include "*.inl" 2 1. ...
- sublime text 2 + Dev-C++/MinGW 组合配置更方便快捷的 C/C++ 编译环境(原创)
首先看一下配置后的效果: 1.直接在底部文本框中显示运行结果(不需要从键盘输入的时候使用): 2.在cmd中运行结果(需要从键盘输入的时候使用): 快捷键说明: 运行: 在底部文本栏显示结果:Ctrl ...
- How to install GSL on linux(ubuntu,centos,redhat)
Test: ftp://ftp.gnu.org/gnu/gsl/gsl-1.15.tar.gz success. ftp://ftp.gnu.org/gnu/gsl/gsl-1.13.0.tar.g ...
- Dev-C++之开启装逼效果
Dev-C++是个不错的C++IDE——在10年前,它是很不错,在现在,它是个以界面丑陋和调试像吃粑粑这两点著称,如下图.
- EGE图形库配置(Dev-C++ 5.10 , TDM GCC 4.8.1)
准备工作:1>Dev-C++ 5.10版本 系统 Win XP/WIN 7 2>下载EGE图形库“ege-13.04.02-full” !,关于本次配置的Dev-C++的信息见如: ...
- DEVC++生成DLL的方法
通过网上一个MD5加密算法源码生成DLL 一.建立DLL项目并编译 DEVC++创建C项目,选择DLL, 一共4个文件及源码如下: dll.h dllmain.c md5.c md5.h 函数参数: ...
随机推荐
- ECharts t图表组件使用心得
1.使用较多的是“柱状图”和“折线图”: 2.数据列的展示不能够直接输入字符串,正确的做法是将字符串转换成数字类型,这样在生成的图表上才会显示最大值和最小值: 3.对上 1 点的补充,数据列应该使用数 ...
- (转)Centos7 yum 源安装nginx
转:https://www.cnblogs.com/fuhai0815/p/8522868.html 一.建立nginx源 vim /etc/yum.repos.d/nginx.repo [nginx ...
- 牛客 Rabbit的数列 (线段树维护值为x的个数+区间覆盖)
https://ac.nowcoder.com/acm/contest/907/C 链接:https://ac.nowcoder.com/acm/contest/907/C来源:牛客网 题目描述 Ra ...
- 关于C(n,m) 的奇偶 ,与C(n,0),C(n,1),C(n,2)…C(n,n).当中有多少个奇数
(n & m) == m 为奇数 C(n,0),C(n,1),C(n,2)…C(n,n).当中有多少个奇数 第一种想法是Lucas定理推导,我们分析一下 C(n,m)%2,那么由lucas定 ...
- 洛谷P1441 砝码称重(搜索,dfs+bitset优化)
洛谷P1441 砝码称重 \(n\) 的范围为 \(n \le 20\) ,\(m\) 的范围为 \(m \le 4\) . 暴力遍历每一种砝码去除情况,共有 \(n^m\) 种情况. 对于剩余砝码求 ...
- TP5内部异常API数据输出的自定义方法编写
需求:利用postman进行请求api接口过程中 关于一些数据输出异常的情况下 我们希望通过自己编写一些类和方法 实现便于后端人员进行根据提示进行调试处理! 以下测试的时候 请设置 app_debug ...
- 学院-成就学院:Academy of Achievement
ylbtech-学院-成就学院:Academy of Achievement 1.返回顶部 1. https://www.achievement.org/ 2. https://www.achieve ...
- Kubernetes tutorial - K8S 官方入门教程 中文翻译
官方教程,共 6 个小节.每一小节的第一部分是知识讲解,第二部分是在线测试环境的入口. kubectl 的命令手册 原文地址 1 创建集群 1.1 使用 Minikube 创建集群 Kubernete ...
- 06 案例篇:系统的 CPU 使用率很高,但为啥却找不到高 CPU 的应用?
上一节我讲了 CPU 使用率是什么,并通过一个案例教你使用 top.vmstat.pidstat 等工具,排查高 CPU 使用率的进程,然后再使用 perf top 工具,定位应用内部函数的问题.不过 ...
- IOS-swift5.1快速入门之旅
快速之旅 传统表明,新语言中的第一个程序应在屏幕上打印“Hello,world!”字样.在Swift中,这可以在一行中完成: print("Hello, world!") // P ...