如何在Windows中制作Superlu
how to make superlu in windows
我已经下载了犰狳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系统编写的。我可以做三件事:
- 按照超级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)。
我做不好。
- 重写Windows的整个制作文件(我也做不到,因为我不知道如何编写制作文件)
最后是工作解决方案(对我来说):
- 我在 github 中找到了一个存储库,它添加了对 Windows 的 superLU 构建支持!你可以在这里找到它
它有一个Visual Studio(2010)解决方案文件,用于构建库并提供lib
文件。
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在Linux for Windows上编译C++代码时出错
- 在Windows上用C++裁剪HBITMAP
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 在Windows中以.exe的形式运行c++
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 无法在windows控制台中为C++程序提供必要的输入
- 在Windows中查找扬声器输出的当前音量级别
- Windows.h与GLFW.h的接口
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 在Linux和C++中的Windows上,散列字符串值会产生不同的输出
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- c++17文件系统::recursive_directory迭代器()在mac上没有给出这样的目录,但在windows上
- 如何在Windows中制作Superlu