添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
精明的小刀  ·  Android ...·  8 月前    · 
不羁的槟榔  ·  2018年政府工作报告·  9 月前    · 
另类的牛肉面  ·  使用 NTP/Chrony 同步 ...·  11 月前    · 
直爽的饭盒  ·  iOS ...·  1 年前    · 
严肃的围巾  ·  Search Results Page 4 ...·  1 年前    · 

这周项目需要编译ARPACK库,感谢该博主的博文中的具体指导:“Visual studio 2015 +Windows10 配置ARPACK,用ARPACK求解特征值特征向量”, https://blog.csdn.net/barcelona941017/article/details/79727784

1. 这种方式编译得到的数学库中的函数命名是Linux风格的,但可以在MSVC项目中调用;

2. 由于博文中下载的MinGW是32位版本,导致编译得到的dll也是32位版本。

3. 可以使用Intel IVF + MSVS编译原生Windows命名风格+64位版本的ARPACK,以后会单独写篇博文说明编译过程。

正文如下:

由于是在公司内网下编译及其它情况,产生了一些方法上的差异,现注明之。

公司内网计算机开发环境是:Windows 7 + MSVS 2013 Update 5。

1. 下载:

原博文需要下载MinGW,原博主下载的是:mingw-get-setup.exe。该程序需要通过互联网下载安装MinGW所需的各第三方库文件,因此在内网环境下需要离线安装MinGW。但是MinGW并没有直接提供离线安装程序,这里需要根据MinGW官方的离线安装文档( http://www.mingw.org/wiki/InstallationHOWTOforMinGW )完成MinGW的安装。

MinGW的安装目录我按照原博主的C:\MinGW建立,需要额外下载的MinGW组件是gcc-fortran。

MinGW官方的离线安装文档标示了所有离线安装MinGW所需的第三方库及下载链接(位于sourceforge),但是有几个连接会提示找不到文件,这时需要在MinGW官网下载mingw-get-setup.exe的网站( https://osdn.net/projects/mingw/releases/ )中下载。

2. 安装:

首先,根据官网提示,将所有第三方库下载文件完全解压后放在MinGW的安装目录下。需要的第三方库完全解压后的目录中是诸如/bin, /mingw32等目录,把这些目录放入MinGW的安装目录下即可,不同的第三方库可能由重名的目录,合并这些目录即可。比如D:\Downloads\mpc-1.0.1-2-mingw32-dll.tar\mpc-1.0.1-2-mingw32-dll\bin与D:\Downloads\binutils-2.32-1-mingw32-bin.tar\binutils-2.32-1-mingw32-bin\bin合并为C:\MinGW\bin。

然后,环境变量中的系统变量PATH中加入MinGW安装目录\bin的路径,比如:C:\MinGW\bin。

最后,需要执行 MSYS 的安装程序,安装路径是:C:\MinGW\msys\1.0。安装完成后会弹出CMD提示你做一些配置,注意最后一项配置是对MinGW\bin\make.exe改名为mingw32-make.exe,当然此时在MinGW\bin下是没有make.exe的,安装会不完整,直接按CMD提示回车退出即可。等MSYS安装完成后把MinGW\msys\1.0中的make.exe复制到MinGW\bin下。然后再执行一次MSYS的安装程序,这时MSYS的CMD中最后一项配置就可以正常执行了。

3. 、4. 修改代码部分均无问题。

5. 编译&打包&VS2015配置:

原博文中的“首先打开MinGW shell,这个文件对用于C:\MinGW\msys\1.0\msys.bat(自己的MinGW目录下)”,实际是指通过CMD运行msys.bat文件打开MinGW shell。

原博文中的 “3)运行命令:lib /out:E:\ARAPCK\arpack_win32.lib  /MACHINE:IX86 /DEF:E:\ARAPCK\arpack_win32.def”,参数/MACHINE:IX86会导致编译出的arpack库文件是32位的,该参数修改为: /MACHINE:X64即可编译64位的arpack库。验证编译结果通过MSVS的dumpbin工具输出库信息即可,使用dumpbin的参数是/headers。