一、下载64bit的gsl:
https://code.google.com/p/oscats/downloads/detail?name=gsl-1.15-dev-win64.zip&can=2&q=
二、编译lib文件:
在bin文件夹可以得到libgsl-0.dll和libgslcblas-0.dll,lib文件夹中却找不到我们需要的导入库libgsl-0.lib
和libgslcblas-0.lib。我们需要手动生成libgsl-0.lib和libgslcblas-0.lib。
生成.lib文件有两种方法:
1.在MinGW上直接调用 pexports libgsl-0.dll >libgsl-0.def
参考网页:http://anony3721.blog.163.com/blog/static/51197420124204843451
MingW安装:http://blog.163.com/rs_reland/blog/static/138791295201291611320800/
lib指令:http://www.mingjianhua.com/post/9.html
最好将MingW安装在C盘下,使用msys文件下的msys.bat进行gsl编译,编译时会提示找不到pexports和lib命令,
使用 mingw-get install pexports 安装pexports,lib可以使用VS2010自动的,将VC\bin和Common7\IDE添加到PATH中去。
(最好吧杀毒软件和360关闭后在安装MingW)
2.手动生成.lib文件
参考网页:http://blog.sina.com.cn/s/blog_6e0693f70100u2ve.html
(参考网页中第6步有错误,是lib /machine:AMD64 /def:libgsl-0.def 和 lib /machine:AMD64 /def:libgslcblas-0.def)
一定要使用VS带的CMD命令行去运行(Visual Studio x64 Win64 命令提示(2010)),不能用windows系统下的CMD
三、设置VS2010编译环境
1. gsl文件复制到\Microsoft Visual Studio 10.0\VC文件中
将gsl文件夹下\bin中的libgsl-0.dll和libgslcblas-0.dll复制到\Microsoft Visual Studio 10.0\VC\Bin;
将gsl文件夹下\include整个gsl目录复制到\Microsoft Visual Studio 10.0\VC\include下;
将gsl文件夹下\lib目录下的所有.lib和.a文件全部复制到\Microsoft Visual Studio 10.0\VC\Lib下;
项目 -> 属性-> 连接器 -> 输入 -> 附加依赖项 -> 添加 libgsl-0.lib libgslcblas-0.lib这两个文件
(在系统中已经有了这些文件,就不需要第二步添加路径的操作。但不建议按这种方法指定,这样会使系统
VC库中的东西非常混乱,强烈建议使用下面这种指定路径的方法)
2. 在VS2010中指定gsl所在的include、lib和bin路径
项目->属性->C/C++目录->包含目录->添加gsl头文件路径
(如:D:\gsl-1.15-dev-win64\include)
项目->属性->C/C++目录->库目录->添加lib文件路径
(如:D:\gsl-1.15-dev-win64\lib)
项目->属性->C/C++目录->可执行文件目录->添加bin文件路径
(如:D:\gsl-1.15-dev-win64\bin)
项目->属性->连接器->输入->附加依赖项->添加 libgsl-0.lib libgslcblas-0.lib这两个文件
四、在项目 ->属性->c/c++的命令行里添加 /D "GSL_DLL" (我的gsl是安装在D盘)
如果没有这步,编译时会提示: error LNK2001: 无法解析的外部符号 gsl_min_fminimizer_*
注意: VS2010要设置在X64环境中运行,而不是win32。否则不能正常编译。
以上的配置都是在x64环境中进行的。