Windows系统下Cygwin+Dev C ++ 配置GSL科学计算库

系统:win10 64bits
软件:
(1)cygwin(gcc7.3), Dev C++
(2)gsl-2.5
(3)MSYS2 https://www.msys2.org/


2019-04-20更新

经过本人测试,使用msys2同样可以正常编译,简单步骤如下:
1、下载安装MSYS2
2、更换镜像源(自行搜索)
3、安装编译工具链,MSYS2提供了三种工具链,分别为1).MSYS2(gcc-7.4), 2)mingw32(gcc-7.4),3)mingw64(gcc-8.3),这三种的不同之处自行搜索,笔者测试过,这三种工具栏均可成功编译gsl-2.5

3.1 首先更新msys2

pacman -Syu

3.2 安装一些基本软件:

pacman -S cmake make vim

3.3 搜索含gcc的可以软件包

pacman -Ss gcc

3.4 根据前面结果下载对应的工具链,会提示有属于mingw32/mingw64还是msys2

3.5 其实msys2的官方库里存在有gsl,同样可以搜索:

pacman -Ss gsl

可以看到mingw32mingw64都有gsl的软件包

4、MSYS2安装完gsl后便需要在DEV-C++配置编译器,注意:经笔者测试,DEV-C++只支持添加mingw32和mingw64(选择这两个文件夹进行配置)

5、 对msys2的包管理功能主要参考学习arch系pacman命令,这里就不细说了


2018-08-10更新

在windows使用过程中发现把C:/cygwin/bin加入环境变量会有一些影响,因为cygwin环境下的软件和已安装的有冲突,而更多时候是使用windows环境下的才稳定,因此我把环境变量删除了,为了保证GSL编译的程序可以正常运行,我把三个需要的动态链接库放到了C:/Windows/System32目录下面
这里写图片描述


总算在windows成功安装了GSL,使用Cygwin+Dev C++折腾了不少,遇到了不少问题,本篇博客就记录一下.

(1)下载安装Cygwin,安装过程要选择下载Devel 下的gcc工具链,我是在gcc下测试的,里面也有mingw64-x86_64套件,但是我之前在msys2中使用了这个去编译GSL2.5就失败了,所有我这次选择的是gcc7.3版本。cygwin默认安装在C盘,安装之后目录c:\cygwin 的结构和Linux结构相似。

这里写图片描述

(2)下载Dev C++,这个是一个非常轻便的C/C++ IDE,虽然已经好久没有更新了,上一次更新是2015-04-27,不过SourceForge每周下载量还是非常多的,下载地址
https://sourceforge.net/projects/orwelldevcpp/files/Setup Releases/
可以选择带编译器TDM-GCC 4.9.4或者不带编译器的,我选择的是带编译器的,后面可以自己添加cygwin里的编译器,配置参照的就是默认的配置

(3)下载GSL2.5版本的源代码,下载地址
https://www.gnu.org/software/gsl/
下载后将压缩包复制到C:\cygwin64\home\admin这个目录根据自己的安装路径作修改

(4)成功安装cygwin后,在桌面打开快捷方式,输入下面命令

$ gcc -v

查看是否正确安装gcc,也可以输入

$ g++ -v

这里写图片描述

(5)进入home目录,解压刚才达到GSL压缩包,进入解压后的目录

$ cd ~
$ tar -xzvf gsl-2.5.tar.gz
$ cd gsl-2.5

(6)配置编译GSL,编译后可以运行一下make check,不过我自己电脑上编译和chenck相比直接在Linux环境下都非常慢,如果编译不出错可以不执行make check

$ ./configure
$ make -j10
$ make install

(7)成功编译之后就要配置Dev C++了,按照下面各图的提示进行配置

1)选择【编译选项】
这里写图片描述
2)由文件夹添加编译器设置
这里写图片描述
3)选择路径c:\cygwin\bin
这里写图片描述
4)重命名编译器
这里写图片描述
这里写图片描述
5)编译器在链接的时候添加命令-lgsl -lgslcblas -lm ,后面编译gsl代码才能成功
这里写图片描述
添加【二进制路径】,就是bin文件夹
这里写图片描述
添加【库路径】,就是lib文件夹
这里写图片描述
添加【C包含文件】,就是include文件夹
这里写图片描述
添加【C++包含文件】,就是include文件夹
这里写图片描述

(8)添加环境变量,为了能找到cygwin1.dll,cyggsl-23.dll,cyggslcblas-0.dll
这里写图片描述

(9)至此dev c++的编译器就已经配置好了,参考GSL 帮助文档,写一个简单的例子进行验证

#include <stdio.h>
#include <gsl/gsl_sf_bessel.h>

int
main (void)
{
  double x = 5.0;
  double y = gsl_sf_bessel_J0 (x);
  printf ("J0(%g) = %.18e\n", x, y);
  return 0;
}

点击编译运行就出来结果了
这里写图片描述

后记

(1)如果编译出错,仔细看编译日志,如果是提示找不到头文件那种,在编译器配置那里看是否包含路径"C:\cygwin64\usr\local\include"
(2)如果编译正常,运行出错,提示缺失cygwin1.dll,cyggsl-23.dll,cyggslcblas-0.dll 之类的,查看是否 加入环境变量,然后重启Dev C++再试试,还有检查编译器配置的二进制路径是否正确

(3)GSL参考资料:

1)解压后的源文件里,在路径gsl-2.5\doc\examples 下面是官方自带的例子
2)https://www.gnu.org/software/gsl/doc/html/index.html 在线帮助文档
3)https://www.gnu.org/software/gsl/doc/latex/gsl-ref.pdf PDF版手册

(4)下一步可以考虑移植到windows下的Qt,用GSL的运算加上QT的界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值