天天看點

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)庫