对MSVS下编译ARPACK数学库的一点补充说明

Posted r0xfed

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对MSVS下编译ARPACK数学库的一点补充说明相关的知识,希望对你有一定的参考价值。

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

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

        公司内网计算机开发环境是: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:Downloadsmpc-1.0.1-2-mingw32-dll.tarmpc-1.0.1-2-mingw32-dllin与D:Downloadsinutils-2.32-1-mingw32-bin.tarinutils-2.32-1-mingw32-binin合并为C:MinGWin。

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

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

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

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

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

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

       完。

以上是关于对MSVS下编译ARPACK数学库的一点补充说明的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2015:在没有运行时库的情况下编译 C/C++

window 下编译cef 内核 加入mp3/mp4 支持

Docker环境下编译android源码|编译可运行xposed

linux下编译时的默认库和头文件搜索路径

在mingw环境下编译assimp

在mingw环境下编译assimp