安装参考这里,后面复制了该博主的安装部分 以记录
GSL 是 GNU 开发并维护的科学计算的库,其中包括:
复数 | 多项式的根 |
---|---|
特殊函数 | 向量和矩阵 |
排列 | 排序 |
BLAS支持 | 线性代数 |
Eigensystems | 快速傅立叶变换 |
正交 | 随机数 |
准随机序列 | 随机分布 |
统计 | 直方图 |
N元组 | 蒙特卡洛整合 |
模拟退火 | 微分方程 |
插值 | 数值微分 |
切比雪夫逼近 | 系列加速 |
离散Hankel变换 | 求根 |
最小化 | 最小二乘拟合 |
物理常数 | IEEE浮点 |
离散小波变换 | 基础样条 |
运行统计 | 稀疏矩阵与线性代数 |
我个人的经验是先按照这个博主的流程进行安装 最后运行发现报错 说无法解析外部符号。在属性-》链接器-》输入 按照图中①②进行修改 这个地方让我磨蹭了好久...还是对vs不熟悉,用的一直是codeblocks
我为什么会修改这里 是由于 我在运行的时候发现图中这里不对劲 我修改之前是debug win32。
下载msys2下载了很久,好几个小时 是github网站的问题
安装用了整整24个小时还没成功 一直在updating database。我就关闭了安装过程,这是安装在了D盘,过了不久 我再重新安装,安装在了c盘,一会就安装成功了。不知道是量变引起质变,还是C D盘的区别。
--------------原博主安装过程------------------
不用编译,只需安装。本文的方法是直接通过安装MSYS2来安装GSL,不需要自己再编译。
一、安装MSYS2与GSL
1. 了解MSYS2
官网:http://www.msys2.org/
百科:https://baike.baidu.com/item/MSYS2/17190550?fr=aladdin
2. 安装MSYS2
打开官网,下载MSYS2的64位安装包(圈出来了):
,下载MSYS2的64位安装包(圈出来了):
然后安装。注意:安装路径不能有中文!我的安装路径为“D:\msys64”,后文教程中以这个路径为例。
安装完之后,打开安装目录,发现目录结构如下:
发现了“dev”、“home”、“usr”等文件夹,这些文件夹一般是Linux系统才有的,可以理解为MSYS2“模拟”了一个Linux系统。“mingw64”则是一些软件包的安装目录,比如GSL,就会被安装到其中。
3. 配置MSYS2
这一步的目的修改MSYS2的源,也就是下载镜像,使得下载包的速度更快。参考链接(下面的图):https://mirror.tuna.tsinghua.edu.cn/help/msys2/
“/etc/pacman.d/mirrorlist.mingw32”等文件在你的MSYS2安装目录之下,比如我的就在“D:\msys64”。
4. 安装一些常用软件包
参考链接:https://www.jianshu.com/p/21eb5274d2da
在开始菜单内找到“MSYS2 MinGW 64-bit”,并点击运行;然后:
* 输入pacman -Syuu升级系统.最后卡住, 关闭掉重新打开
* 再次输入pacman -Syuu 升级其他软件.
* pacman -S gcc openssh vim dos2unix perl ruby winpty cmake tar make git 安装一堆软件
MSYS2安装包的命令简介:https://blog.csdn.net/qiuzhiqian1990/article/details/56671839
5. 安装GSL
在上面的窗口中,输入命令pacman -S mingw-w64-x86_64-gsl,安装GSL的预编译包,gsl就会被安装到目录“D:/msys64/mingw64”之下。打开“D:/msys64/mingw64”:
可以看到“bin”等文件夹,其中“bin”包含了运行时需要用到的dll文件,“include”里面时头文件,”lib“里面当然是库文件。
二、在VS2015中使用GSL
使用VS新建一个项目”gsl_test“,然后在”gsl_test“右键单击,弹出下面的菜单:
然后选择”属性“,弹出属性配置页。在此处打开的属性配置页只属于当前项目,在“属性管理器”配置的属性是全局属性。
“平台”一定得选“x64”,因为我们在之前安装的是64位的gsl库。“Release”和“Debug”的配置是相互独立的,都需要配置。首先配置包含目录和库文件目录(按照你自己的安装路径来修改路径):
然后配置库:
打开“D:/msys64/mingw64/lib”,可以发现:
有四个文件,这里只需要把“libgsl.dll.a”和“libgslcblas.dll.a”添加到项目的依赖项就行,其余两个是完整的静态库,用不到。
最后一步,把“D:/msys64/mingw64/bin”,加入到环境变量“Path”;然后重启VS。新建一个代码文件,输入下面的代码:
// gsl_test2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <gsl/gsl_vector.h>
#include <gsl/gsl_multiroots.h>
#include <gsl/gsl_sf_bessel.h>
#include <iostream>
using namespace std;
int main() {
double x = 5.0;
double y = gsl_sf_bessel_J0(x);
cout << "J0(" << x << ") = " << y << endl;
printf("测试成功,按回车退出!\n");
getchar();
}