天天看点

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

QT5环境下配置GSL数学库

GSL(GNU Scientific Library)是一个C写成的用于科学计算的库,有超过1000个函数,Matlab的大部分函数几乎都能借助它实现,可以在数值计算中省却很多事情。使用QT5开发界面的时候,不仅仅是显示各种数据,还需要进行数据分析及计算。对于从事信号处理的我而言,之所以采用QT5进行界面开发,是因为其上手较快,开发的界面优雅大方。但是美中不足的是没有自带的信号处理库函数,因此在这里详细介绍如何QT5环境中搭载GSL库,从而加快算法实现周期。

一、配置工具

在QT5环境下配置GSL数学库,首先编译GSL获得静态库和动态库,然后配置QT的工程即可。但是对于不熟悉linux的人来说,往往会卡在第1步,导致这个库无法调用。在配置GSL库时,需要用到mingw32编译器、msys工具和GSL源文件。

1.1、下载mingw32

mingw32编译器是安装Qt5自带的编译器,我使用的Qt版本文5.9,其mingw编译器版本为mingw5.3.0_32,安装目录处于D:\Qt\Qt5.9.1\5.9.1\mingw53_32路径下。

1.2、下载msys

msys是minGW开源项目开发的一款在windows下模拟Unix命令窗口的工具,这样便于我们在命令行中使用mingw来快速编译程序。msys的下载网址为:

https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/

直接在网上搜索msys会出现一大堆相关链接,但是所给的均是需要联网安装的。而上述网址给出的是一个压缩包,直接解压就可以使用,点开链接后,我们选择图1中的红色标识部分。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图1 链接截图

1.3、GSL源文件下载

刚开始在网上搜索GSL的时候,指向的是一个老版本的GSL网站,里面提供的GSL版本为1.8。而实际上现在GSL已经更新到2.4版本,新版的GSL的下载链接为:http://www.gnu.org/software/gsl/,其网站截图如图2所示。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图2 GSL网站截图

在GSL的官方网站中你可以下载任意版本的GSL以及对应的说明文档。有关怎么下载,大家直接参阅GSL的官方网站。

二、环境配置

2.1、mingw环境配置

在安装QT5的时候,为了完成编译的程序在脱离QT5后仍然可以运行,需要将其所依赖的动态库添加入环境变量。将动态库添加入系统的环境变量其实就相当于告诉系统当程序运行时,可以从这里获取对应的依赖库文件。

同样的,将mingw的bin目录添加进系统的环境变量,相当于告诉系统已经安装了mingw编译器,并且可以被使用。Qt5自带的mingw的安装路劲为D:\Qt\Qt5.9.1\5.9.1\mingw53_32,这里我们需要将D:\Qt\Qt5.9.1\5.9.1\mingw53_32\bin目录添加进入系统环境变量。

系统环境变量的设置方法为:【计算机】->【属性】->【高级系统设置】->【环境变量】->【系统变量】->【Path】。

2.2、msys环境配置

由于mingw与msys是配合使用,因此在这里将msys的压缩包直接解压到mingw编译器的安装目录,即D:\Qt\Qt5.9.1\5.9.1\mingw53_32。解压后的目录结构如图3所示。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图3 msys解压路径的目录结构

但是仅仅将msys解压后并不能直接使用,因为对于msys而言,它还不知道mingw编译器所处位置,因此需要对msys的环境进行配置。首先需要在msys的路径下创建一个名为mingw的空文件夹,如图4所示。然后修改etc/fstab中的内容如图5所示即可。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图4 msys的目录结构

熟悉linux的人应该知道这句话其实完成的就是环境配置,当启动msys时,将Qt5的mingw编译直接挂载到/mingw目录下。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图5 fstab文件内容

双击msys.bat运行msys,使用cd命令进入/mingw目录下,我们就会发现此目录下文件就是d:/Qt/Qt5.9.1/Tools/mingw530_32对应的文件,如图6所示。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图6 msys运行结果截图

2.3、安装GSL源文件

GSL源文件安装有2种方式,gsl-1.8版本在官网上是通过安装包安装的,gsl-2.4直接解压缩皆可以使用。在本质上这两种方式没有本质的不同,仅仅是打包方式不同。但是在安装GSL源文件时,一定要注意安装路径名不要存在空格,不要出现中文,不然在编译时会出现问题。我使用的是gsl-2.4版本,直接解压到d:/Qt_mathLib/目录下,解压后的目录结构如图7所示。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图7 GSL-2.4源文件

三、编译GSL

在正确搭载GSL环境后,编译GSL其实特别简单,参阅GSL源文件中自带的INSTALL文件进行编译。其实对于每个人所采用的平台不一样,遇到的问题可能也不一样,但是INSTALL文件给出了每个平台可能遇到的问题以及解决方案。因此当大家参照网上的编译方法没有结果时,不妨仔细阅读INSTALL文档,没准问题就迎刃而解。

(1)运行msys,进入GSL源文件所在目录,如图8所示

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图8 编译截图1

(2)./configure

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图9 编译截图2

(3)make -j8

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图10 编译截图3

(4)make install

在执行完make install命令后,GSL源文件已经编译完毕。当执行make install命令后,我们所需要的库文件以及头文件会自动复制到msys/local/bin、msys/local/lib和msys/local/

include三个文件夹中。这3个文件夹中对应的所需内容如图11/12/13所示,我们将这些文件复制到一个新建的gsl文件夹下。目录结构保持与msys/local一致,但是仅需要bin、include和lib这三个文件夹,结果如图14所示。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图11 bin目录下的相关文件

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图12 include目录下的相关文件

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图13 lib目录下的相关文件

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图14 gsl配置目录

四、Qt调用GSL库

4.1、撰写工程配置文件

在图14所示的目录中创建一个gsl.pri文件,用于指明库的头文件和静态库文件所在位置,撰写的内容如图15所示。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图15 GSL的配置文件

4.2、创建Qt工程

为了测试GSL数学库能够在Qt环境中运行,在这里新建一个工程进行测试。由于是用于测试数学库,因此仅需新建一个控制台工程即可。

新建控制台应用程序的步骤为:【Welcome】->【New Project】->【Application】->【Qt Console Application】->【Choose】->【将工程命名为gslTest】。

4.3、导入GSL库文件

将编译之后的GSL库文件及头文件放置到gslTest工程中,并在gslTes.pro工程配置文件添加如下内容。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图16 gslTest.pro中添加的内容

然后再main.cpp中添加如下测试内容,然后编译和运行即可。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图17 main.cpp中添加的内容

4.4、编译运行结果

至此,整个GSL数学库加载的工作已经完成,图18所示为编译后的运行结果。

QT5环境下配置GSL数学库QT5环境下配置GSL数学库

图18 工程运行结果

五、参考文档

[1] http://blog.csdn.net/czyt1988/article/details/39178975 最强数学库GSL(GNU Scientific Library) Qt环境下部署

[2] http://blog.csdn.net/augusdi/article/details/9965493 GSL的编译和使用

[3] http://blog.csdn.net/tadpole_java/article/details/51485038 Qt环境下使用GSL( GNU Scientific Library)库