GSL - GNU Scientific Library 在 windows 上的使用
来源:互联网 发布:php微信开发视频 编辑:程序博客网 时间:2024/05/02 01:33
GNU Scientific Library 在 windows 上的使用
- 缘由
- 步骤
- 小例子
- 小结
有些逗逼话语,请注意 -.-
缘由
事情大抵是这样的:毕设要参考一片文章 -> 找到原作者的链接 -> 发现他直接给出了源代码 ^^ -> 是 matlab 的 -.- -> 在 github 上找更合适的实现(C++) -> 发现了一个看来很靠谱的 -> 运行了五点法,成功! ^^_^^ -> 四点法需要 GSL 库的支持 -> GSL 官网说了他们不太喜欢 windows(”A compiled version of GSL is available as part of Cygwin on Windows (but we recommend using GSL on a free operating system, such as GNU/Linux).”) -> 事实证明在 windows 上使用确实不太简单:1 WinGsl,2 Gsl for Windows 版本太旧,3 不少编译版本(此处仅给出一个,网上很多) 并不好用。比较靠谱的Installing GSL on Windows 中的 The hard way: compile your own version 就像他自己说的那样 “only works with version 1.8 of GSL”, 而我相当于刚入门 cmake,并不能自己修改太多。
最后的最后,在尝试了 N 次,准备放弃之时(其实,真不好说,毕竟强迫症又上来了)。终于在 github 上找到了很好的一个 GNU Scientific Library with CMake build support,感谢苍天大地!!!
步骤
我的环境是 windows10 + vs2013 社区版 + Cmake 3.5.2
此 repository 是对 GSL 进行 CMake 的包装,并且更新到 GSL 的 2.1 版本。
剩下的就是很直观了
git clone 下来mkdir build & cd buildcmake .. -G "NMake Makefiles"nmakenmake install
说一下我遇到的问题:
1.nmake 时会不通过,是的,真的是 error。但当时抱着 WTF 的想法,又执行了一次 nmake,发现可以继续执行,这样的动作进行了几次,最终 make 完成。
2.nmake install 时需要管理员权限(它是默认安装到了 C:\Program Files (x86)\GSL 路径下,但是写程序时路径中的空格有可能会有些不好,所以我把整个文件又拷贝到了其他的目录)
再说一下你需要注意的地方和可能遇到的问题:
1.首先需要安装 Cmake,zip 版本是足够使用的。直接解压到一个路径,并添加 “系统变量” Cmake( “解压目录”\cmake\bin),然后将 %Cmake% 添加到 Path 下。
2.因为是直接使用 nmake,cl,lib 等命令,所以还是需要将包含这些命令的路径添加到 Path 下的。如若不然的话,肯定是不可用的,根据错误提示(大概是需要运行一下 vcvarsall.bat,将所需命令都在当前 cmd 中可用),添加 VS120_NMAKE 的环境变量,设为 “\Microsoft Visual Studio 12.0\VC”,并将 %VS120_NMAKE% 添加到 Path 下。
3.新开启一个 cmd 时,可以先执行 cmake 命令,验证可以使用 cmake。然后执行 vcvarsall,会有一小段时间的停顿,然后执行 namke 命令,验证 vcvarsall 正确执行。之后,应该都可以了。
小例子
上面说到 nmake install 默认安装到了 C:\Program Files (x86)\GSL 文件夹下,其目录结构为:
├───include
│ └───gsl
└───lib
编写程序时,需要将 include 和 lib 文件夹包含进去。
示例一:
1.vs 新建一个工程
2.添加 hello.cpp
#include <stdio.h>#include <gsl/gsl_sf_bessel.h>int main( void ){ double x = 5.0; double y = gsl_sf_bessel_J0 (x); printf("J0(%g) = %.18e\n", x, y); return 0;}
3.PROJECT -> Properties -> Configuration Properties -> VC++ Directories ->
Include Directories 下添加我们生成的 include 文件夹
Library Directories 下添加 lib 文件夹
Configuration Properties -> Linker -> Input -> Additional Dependencies 下添加 gsl.lib;gslcblas.lib;
4.运行,得出结果 J0(5) = -1.775967713143382600e-001
示例二(确实是挺喜欢 Cmake 的):
1.在任一文件夹下添加 hello.cpp 如上
2.新建 CMakelists.txt:
PROJECT (HELLO)cmake_minimum_required(VERSION 3.5)SET (SRC_LIST hello.cpp)ADD_EXECUTABLE (hello ${SRC_LIST} )include_directories("放置目录"\\GSL\\include)target_link_libraries (hello "放置目录"\\GSL\\lib\\gsl.lib "放置目录"\\GSL\\lib\\gslcblas.lib)
3.mkdir build & cd build
4.cmake .. -G “NMake Makefiles”
5.nmake
6.hello.exe
小结
1.我们生成的 lib 文件在 RELEASE 和 DEBUG 模式下均可使用
2.看到网上不少说要生成 DLL 文件,目前没有发现必要性(大概我遗漏了什么?)
3.软件的不兼容性是个历史悠久的烂泥潭
4.Cmake 是很不错的
5.GSL 的使用范围应当是很广泛的,自己花了整整两天的功夫才在 windows 上装好了,应该好好利用。(多少次花了很长时间配环境,配完就撂那不管 -.-)
Good luck & have fun
- GSL - GNU Scientific Library 在 windows 上的使用
- 使用GNU Scientific Library(GSL)及GSL的配置
- Windows下使用GSL(GNU Scientific Library)
- Windows下在GSL(GNU Scientific Library)中使用OpenBLAS库
- GSL - GNU Scientific Library
- GSL--GNU Scientific Library
- GSL--GNU Scientific Library
- GSL - GNU Scientific Library
- GSL(GNU Scientific Library)在vs2010下的配置
- GSL(GNU Scientific Library)在vs2010下的配置
- Windows下使用VC++编译GNU科学计算库 GNU Scientific Library(GSL)
- Windows下使用VC++编译GNU科学计算库 GNU Scientific Library(GSL)
- 使用GNU Scientific Library(GSL)及GSL的配置(转自彭军)
- GSL--GNU Scientific Library 小记
- C/C++ GNU Scientific Library(GSL) for Windows
- 如何安装C/C++ GNU Scientific Library(GSL) for Windows
- Visual Stdio 环境下使用 GSL (GNU Scientific Library)
- Qt 环境下使用Gsl( GNU Scientific Library)库
- HTML DOM Event 对象
- button圆角
- 《大话Java性能优化》已经发表,天猫、亚马逊、京东、当当均有销售,提前谢谢支持
- Redis与Memcached的区别
- bsoj 3733 【模拟试题】打印文章(hdu3507)
- GSL - GNU Scientific Library 在 windows 上的使用
- 定位式查找---哈希表
- 背包系列第五篇----完全背包(求解最大价值时背包的物品)
- MongoDB入门教程(二)
- xml解析,基于XmlPullParser
- Aizu 0558
- Windows7更新解决方案 更新慢卡住不动(Added Key Words)
- android-----事件分发机制
- ScrollView嵌套ListView进入时只加载ListView的位置解决办法