如何在windows中制作superlu

时间:2016-03-04 11:53:07

标签: c++ windows makefile

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

我已经从here下载了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目录并在那里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

我几乎没有“制造”和“超级”的经验。我怎样才能在windows中制作superlu?是否有可用于Windows的预编译超级库?

1 个答案:

答案 0 :(得分:1)

好吧,似乎makefile是为linux系统编写的。 我可以做三件事:

  1. 按照superLU FAQ page
  2. 上的说明操作
      

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

         

    第一步:创建SuperLU库文件           创建一个新项目,然后在SRC目录中包含所有.c和.h文件(它们可以放在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发行版包括一个C版本的BLAS   SuperLU / CBLAS目录。这个版本只是功能但不快。   为了速度,最好使用供应商提供的BLAS(例如,英特尔MKL)   或公共领域版本(例如,ATLAS或Goto BLAS)。

    我做不到。

    1. 重写整个makefile for windows(我无法做到,因为我不知道如何编写makefile)
    2. 最后工作解决方案(对我而言):

      1. 我在github上发现了一个repo,为windows增加了superLU构建支持! 你可以找到它here
      2. 它有一个Visual Studio(2010)解决方案文件,用于构建库并提供lib文件。