我已经下载了犰狳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的预编译超级库?
答案 0 :(得分:1)
好吧,似乎makefile是为linux系统编写的。 我可以做三件事:
这是在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)。
我做不到。
最后工作解决方案(对我而言):
它有一个Visual Studio(2010)解决方案文件,用于构建库并提供lib
文件。