如何使超级在Windows中

我已经下载了犰狳6.5。 它需要superLU(4.3)库来求解稀疏matrix方程组。

我已经从这里下载了superlu ,但是当我想在Windows中,它给:

 ( cd SRC; make ) process_begin: CreateProcess(NULL, ( cd SRC; make ), ...) failed. make (e=2): The system cannot find the file specified. Makefile:36: recipe for target 'superlulib' failed make: *** [superlulib] Error 2 

如果我手动cd到SRC目录,并做在那里,很多*.o文件被创build,但我又得到这个错误:

 ar cr /Codes/SuperLU/SuperLU_4.3/lib/libsuperlu_4.3.a \ sgssv.o sgssvx.o ssp_blas2.o ssp_blas3.o sgscon.o slangs.o sgsequ.o slaqgs.o spivotgrowth.o sgsrfs.o sgstrf.o sgstrs.o scopy_to_ucol.o ssnode_dfs.o ssnode_bmod.o spanel_dfs.o sp anel_bmod.o sreadhb.o sreadrb.o sreadtriple.o scolumn_dfs.o scolumn_bmod.o spivotL.o spruneL.o smemory.o sutil.o smyblas2.o sgsisx.o sgsitrf.o sldperm.o ilu_sdrop_row.o ilu_ssnode_dfs.o ilu_scolumn_dfs.o ilu_spanel_dfs.o ilu_scopy_to_ucol.o ilu_spivotL.o sdiagonal.o superlu_timer.o util.o memory.o get_perm_c.o mmd.o sp_coletree.o sp_preorder.o sp_ienv.o relax_snode.o heap_relax_snode.o colamd.o ilu_relax_snode.o ilu_heap_relax_snode.o mark_relax.o mc64ad.o qselect.o lsame.o xerbla.o slacon.o slamch.o ar: /Codes/SuperLU/SuperLU_4.3/lib/libsuperlu_4.3.a: No such file or directory Makefile:117: recipe for target 'single' failed make: *** [single] Error 1 

我几乎没有“make”和“superlu”的经验。 我怎样才能使超级在Windows? 是否有任何预编译的超级库可用于Windows?

那么,makefile是为linux系统编写的。 我可以做三件事:

  1. 请按照superLU FAQ页面上的说明操作:

这是在MS Visual Studio中测试的。 但是,配置高度依赖于您使用的编译器。 通常有一个IDE(集成开发环境)编辑器与您的编译器相关联。 您可以分两步进行:

第一步:创建SuperLU库文件创建一个新的项目,然后将所有的.c和.h文件包含在SRC目录下(可以放在IDE的两个文件夹中)。 更改项目的属性,使输出为库文件.lib(而不是.exe或.dll文件)。 编译项目以生成库文件,例如superlu.lib。 (在您成功编译之后,您可以构建一个没有调试信息的发行版本)。

第二步:构建你自己的应用程序用你自己的调用SuperLU例程的源文件创建一个新项目。将SRC目录和superlu.lib所在的目录分别添加到包含路径和库搜索路径中。 添加superlu.lib作为链接可选库。 编译自己的.dll或.exe文件。 那你就完成了。

如果你只用命令行编译器,你必须使用makefile或-I -L -O -c选项。 由于SuperLU调用BLAS例程,但BLAS不是MS Visual Studio的本地库,所以必须以与SuperLU库类似的方式构建自己的BLAS库。 SuperLU发行版在SuperLU / CBLAS目录中包含BLAS的C版本。 这个版本只是功能,但不是很快。 为了提高速度,最好使用供应商提供的BLAS(例如Intel MKL)或公共领域版本(例如ATLAS或Goto BLAS)。

我做不对。

  1. 重写windows的整个生成文件(我不能这样做,因为我不知道如何写一个生成文件)

最后的工作解决方案(对我来说):

  1. 我在github中发现了一个回购,为windows添加了superLU构建支持! 你可以在这里找到它

它有一个Visual Studio(2010)解决方案文件,用于构建库并提供一个lib文件。