windows下编译umfpack

系统配置: Windows7旗舰版64位,Intel i3 2.4GHz,4G RAM。

版      本: AMD-2.3.1 SuiteSparse_config-4.0.2 UMFPACK-5.6.1

结      果: 编译出windows xp/7下umfpack32位运行时库。

介绍

关于umfpack详细参考(http://www.cise.ufl.edu/research/sparse/umfpack/),其中编译umfpack主要参考了(http://matrixprogramming.com/2008/03/umfpack)以前编译过了一次,后来又忘了,这次把纪录下来。相关安装包到umfpack网站上下载。

编译

1 把AMD-2.3.1 SuiteSparse_config-4.0.2 UMFPACK-5.6.1三个安装包解压到同一目录下。

2 进入SuiteSparse_config目录下,编辑SuiteSparse_config.mk文件,需要修改三个地方,我们直接编译基于blas版本的链接库,在文件第188行,取消注释,语句变成

UMFPACK_CONFIG = –DNCHOLMOD

第259和第260行变成(取消注释):

CC = gcc
CF = $(CFLAGS) -O3 –fexceptions

第109 110行注释掉,变成:

# BLAS = -lblas -lgfortran
# LAPACK = –llapack

保存上述设置,并关闭SuiteSparse_config.mk文件。

3 打开cygwin终端,进入umfpack目录,比如我把umfpack解压文件放在c盘的umfpack目录下,则键入:

$ cd c:/UMFPACK/UMFPACK

然后再键入“make”,如果一切顺利则会生成三个库文件(有些错误可以忽略不管,只要生成了后面三个库文件),libsuitesparseconfig.a,libamd.a,libumfpack.a,把三个文件后缀名改成lib。

使用

我在vs2010下编译了umfpack提供的demo,把libsuitesparseconfig.lib,libamd.lib,libumfpack.lib链接到程序,最开始会出现链接错误,原因是我们使用了blas库编译umfpack,但是程序中没有提供blas库,参考(http://www.cnblogs.com/xlh20074862/archive/2013/03/17/2964577.html)提供的编译OpenBLAS库方法(该方法会生成三个文件:libopenblas.a,libopenblas.dll,lib*.a),第三个名字我忘了,把第三个文件后缀变成lib并链接到程序中,umfpack中提供例子都可以顺利通过编译。

注:关于程序运行的正确性和时间效率未测试,另外,未编译64位版本。我使用编译clapack库生成的blas库加入到程序中总会出现链接错误,找不到几个前后都有下划线的函数,用http://matrixprogramming.com/2008/03/umfpack提供的ATLAS也没有通过编译,不知道其中具体什么原因,知道的可以说下。

转载于:https://www.cnblogs.com/xlh20074862/archive/2013/03/17/2964747.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误通常是因为编译器无法找到 umfpack.h 文件或目录。您需要确保您的编译器可以找到该文件或目录。您可以尝试在编译器的 include 路径中添加 umfpack.h 文件所在的路径,或者确保您已经正确安装了 UMFPACK 库。 ### 回答2: "umfpack.h没有那个文件或目录"这个错误通常发生在尝试编译和构建程序时。这个错误表明找不到名为umfpack.h的文件或目录。 umfpack.h是一种用于稀疏矩阵计算的库文件的头文件。要解决这个错误,你可以采取以下步骤: 1. 确保你已经正确安装了umfpack库。可以在相关文档中找到安装说明。检查库文件是否正确安装并位于你的计算机上。 2. 确保你在编译过程中正确地指定了umfpack库的路径。在编译和构建命令中,应该包含正确的库路径和链接选项。如果未正确设置,编译器将无法找到umfpack.h文件。 3. 检查你的代码中是否正确包含了umfpack.h头文件。确认头文件的名称和路径是否正确拼写和指定。 4. 如果你是在Windows环境下编译程序,请确保你已经正确设置了环境变量。有时候,库文件的路径需要手动添加到系统的环境变量中,以便编译器能够找到它。 总之,"umfpack.h没有那个文件或目录"错误通常是由库文件未正确安装、路径设置不正确或代码中未正确包含头文件引起的。通过检查这些方面,你应该能够解决此问题并成功编译你的程序。 ### 回答3: 当你收到"umfpack.h没有那个文件或目录"的错误消息时,这意味着编译器无法找到你所需要的"umfpack.h"头文件。 "umfpack"是一个开源的稀疏线性代数库,用于求解稀疏线性方程组。它包含了一系列的头文件和库文件,而"umfpack.h"头文件包含了库的函数和结构的声明和定义。 出现"umfpack.h没有那个文件或目录"错误消息有以下几种可能的原因: 1. 你没有正确地安装"umfpack"库。在编译代码之前,你需要确保已经正确地安装了该库,包括头文件和库文件。 2. 头文件的路径没有正确地配置。你需要在编译器的编译选项中包含正确的"umfpack.h"头文件的路径,以便编译器可以找到并包含该头文件。 3. 头文件的名称不正确。确保你使用的是正确的头文件名称,如果名称大小写不匹配,编译器也会报错。 解决这个问题的方法是: 1. 确保你已经正确地安装了"umfpack"库,包括头文件和库文件。可以查看该库的文档以获取安装指南。 2. 检查你的编译器选项是否正确地配置了"umfpack.h"头文件的路径。你可能需要通过添加"-I"选项来指定该头文件的路径。 3. 确保你使用的是正确的头文件名称,大小写要匹配。 总之,"umfpack.h没有那个文件或目录"错误消息表明编译器无法找到所需的"umfpack.h"头文件。你需要检查安装和配置是否正确,以确保头文件能够被正确地找到和包含。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值