我试图让Arpack和Arpack在Windows 7中使用Visual Studio 2010,并使用swig创建一个可以与C#一起使用的界面 . 这基本上是为了创建一个基准,我将用它来衡量用C#解决特征向量问题的所有进一步尝试,但首先我需要这个工作 .
我已经设法使用this guide编译Arpack,虽然稍有改动,因为g77不再是MinGW附带的Fortran编译器,而是我们得到了gfortran . 对 ARmake.inc
的进一步更改包括注释 -cg89
选项,这会产生错误(我不知道这个用g77填充的目的,但gfortran不接受它) .
进一步遵循指南,思考"at least it's compiled now, with or without option."我继续 dllwrap
. 但是,不接受 -lg2c
选项,因为较新版本的MinGW中不包含库文件 libg2c
. 如果我尝试没有该选项,我会从我的一些 .o
和相应的 .f
-files中获得有关未定义引用的错误 . 我应该使用哪些库文件?我做了别的明显错误吗?
1 回答
我发现密钥似乎是使用
gfortran
而不是dllwrap
. 这是我安装MinGW和msys后使用的整个过程1)运行安装后脚本并确保它不会抱怨缺少gcc等 . 如果是,请安装这些软件包 .
2)将ARPACK文件和补丁解压缩到
msys\1.0\home\yourname\ARPACK
3)编辑
ARmake.inc
并将FC
和FFLAGS
行更改为:4)编辑
UTIL/second.f
并用此替换所有内容 . 这可以防止有关ETIME的错误 . 不知道它做了什么,但是由http://blog.csdn.net/guillotine007/article/details/8636647建议5)编译为.o文件
6)使用gfortran而不是dllwrap链接并创建dll
7)产生的dll取决于其他3个dll:
libgcc_s_dw2-1.dll
,libgfortran-3.dll
,libquadmath-0.dll
,您可以从MinGW安装中获得 .