windows下GSL的配置


一、GSL的下載、安裝

  下載地址:http://gnuwin32.sourceforge.net/packages/gsl.htm 下載 Complete package, except sources和Sources兩個exe文件

  安裝從下載的兩個文件gsl-1.8.exe和gsl-1.8-src.exe,如我的安裝在:D:\GSL\ 目錄下:
  

 

二、設置編譯環境

(1)對於VS2010:

 1、生成lib文件。發現安裝目錄lib下並沒有libgsl.lib,libgslcblas.lib這兩個文件,倒是有兩個擴展名為def和a(linux下庫文件包格式)的文件,因此必須進行轉換。

  開始菜單,要用VS帶的CMD命令行去跑,不能用windows系統下的CMD!!!

  進入gsl庫的lib目錄下依次輸入以下兩條語句:
    lib /machine:i386 /def:libgsl.def
    lib /machine:i386 /def:libgslcblas.def

再看lib目錄下,發現有了libgsl.lib,libgslcblas.lib這兩個文件。

 2、

方式一(不推薦)

將..\GnuWin32l\bin中的libgsl.dll和libgslcblas.dll復制到D:\Program Files\Microsoft Visual Studio 10.0\VC\Bin;將\include整個Gsl目錄復制到D:\Program Files\Microsoft Visual Studio 10.0\VC\include下;\lib目錄下的所有.lib文件全部復制到D:\Program Files\Microsoft Visual Studio 10.0\VC\Lib下。

(如果這樣添加了其實下面指定的前兩個都不需要,因為在系統中已經有了這些文件,但不建議按這種方法指定,這樣會使系統VC庫中的東西非常混亂,強烈建議使用下面這種指定路徑的方法!!)

 

方式二(推薦)

 

在Project -> tracking-> Configuration Properties -> C/C++ -> General -> Additional Include Directories 中增加頭文件路徑。

在Project -> tracking -> Configuration Properties -> C/C++ -> General -> Additional Library Directories 中增加庫文件路徑。

在Project -> tracking  -> Configuration Properties -> Linker -> Input -> Additional Dependencies 中增加所依賴的庫文件libgsl.lib和libgslcblas.lib。

 

重要tips:需要在c/c++的command line里添加  /D "GSL_DLL"

 (注:Project -> tracking  -> Configuration Properties ->C/C++->Command line)

 

 

(2) 對於VC6:

  生成lib文件:發現安裝目錄lib下並沒有libgsl.lib,libgslcblas.lib這兩個文件,倒是有兩個擴展名為def和a(linux下庫文件包格式)的文件,因此必須進行轉換。

    這里可以直接用windows命令行,在命令行中切換到D:\GSL\GnuWin32\lib

    lib /machine:i386 /def:libgsl.def

    lib /machine:i386 /def:libgslcblas.def

    運行以上命令后再看lib目錄下,發現有了libgsl.lib,libgslcblas.lib這兩個文件,這就對了,進入下一步。

    將D:\GSL\GnuWin32\bin中的libgsl.dll和libgslcblas.dll復制到..\VC\Bin下;

    將D:\GSL\GnuWin32\include目錄下的整個gsl文件夾拷貝到..\VC\include下;

    將D:\GSL\GnuWin32\lib目錄下的所有.lib文件全部復制到..\VC98\Lib下。

    新建一個VC6工程用於測試,然后進入項目->屬性->連接器->輸入,在“附加依賴項”一欄加入庫文件 libgsl.lib libgslcblas.lib,用空格隔開,並在

  Project setting->C++->Project Options加入/D "GSL_DLL",並點擊OK

 

三、測試用例

 1 #include <gsl/gsl_spline.h>
 2 #include <cstdio>
 3 #include <cstdlib>
 4 #include <cmath>
 5 
 6 void Display()
 7 {
 8      const size_t n = 4;
 9      double x[] =  {0,0.333336,0.666666,1};
10      double y[] =  {0,0.5,0.9,0};
11      gsl_interp* interps[3] =  {NULL,NULL,NULL};
12      interps[0] = gsl_interp_alloc(gsl_interp_linear,n);
13      interps[1] = gsl_interp_alloc(gsl_interp_polynomial,n);
14      interps[2] = gsl_interp_alloc(gsl_interp_cspline,n);
15      gsl_interp_init(interps[0],x,y,n);
16      gsl_interp_init(interps[1],x,y,n);
17      gsl_interp_init(interps[2],x,y,n);
18      gsl_interp_accel* acc = gsl_interp_accel_alloc();
19 }
20 
21 int main(int argc, char** argv)
22 
23 {
24      Display();
25      return 0;
26 
27 }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM