如何在Windows中制作Superlu

how to make superlu in windows

本文关键字:Superlu Windows      更新时间:2023-10-16

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

我已经从这里下载了superlu,但是当我想在窗口中制作它时,它会给出:

( 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目录并在那里执行make,则会创建很多*.o文件,但再次出现此错误:

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中制作Superlu? 是否有任何预编译的Superlu库可用于Windows?

嗯,看起来makefile是为Linux系统编写的。我可以做三件事:

  1. 按照超级LU常见问题页面上的说明进行操作:

这是在MS Visual Studio中测试的。然而配置高度 取决于您使用的编译器。通常有一个 IDE (集成开发环境)编辑器与您的关联 编译器。您可以通过两个步骤完成:

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

步骤 II:构建自己的应用程序 使用自己的应用程序创建新项目 调用 SuperLU 例程的源文件。添加 SRC 目录并 superlu.lib 所在的目录到包含路径和 分别是库搜索路径。 添加 superlu.lib 作为链接可选库。 编译您自己的.dll或.exe文件。然后你就完成了。

如果您仅使用命令行的编译器,则必须播放 使用 makefile 或 -I -l -o -c 选项。正如超级LU所说的布拉斯 例程,但BLAS不是MS Visual Studio的本机库,您 必须以类似于SuperLU的方式构建自己的BLAS库 图书馆。SuperLU 发行版包括 C 版本的 BLAS SuperLU/CBLAS 目录。此版本仅功能,但速度不快。 为了提高速度,最好使用供应商提供的 BLAS(例如英特尔 MKL) 或公共领域版本(例如,ATLAS或Goto BLAS)。

我做不好。

  1. 重写Windows的整个制作文件(我也做不到,因为我不知道如何编写制作文件)

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

  1. 我在 github 中找到了一个存储库,它添加了对 Windows 的 superLU 构建支持!你可以在这里找到它

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