一、下載gsl
1、從http://gnuwin32.sourceforge.net/packages/gsl.htm下載Complete package, except sources和Sources兩個exe文件。
二、安裝
1、 首先安裝從http://gnuwin32.sourceforge.net/packages/gsl.htm下載的兩個文件gsl-1.8.exe和gsl-1.8-src.exe。
三、設置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、將x:\Program Files\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",這個問題折磨了我一天。。。。
五、測試Gsl函數庫
#include <iostream>
#include <gsl_sf.h>
int main()
{
std::cout << gsl_sf_gamma_inc( 1.5, 0.5 ) << std::endl;
std::cout << gsl_sf_gamma_inc_Q( 1.5, 0.5 ) << std::endl;
std::cout << gsl_sf_gamma_inc_P( 1.5, 0.5 ) << std::endl;
std::cin.get();
return 0;
}