Win10 VS2013 suitesparse-metis-for-windows 1.3.1

suitesparse-metis-for-windows 1.3.1 安装包内附SuiteSparse 4.5.1, Metis 5.1.0和 lapack 3.4.1

Github上面由整理好的suitesparse包适合在Windows安装 https://github.com/jlblancoc/suitesparse-metis-for-windows,并附有详细的安装指导,但是会有一点bug

问题1:metis/GKlib/gk_arch.h中有个bug,从C++11开始标准库中已经支持rint函数了,VS 2013开始支持这一函数,修复方式

#ifdef __MSC__
/* MSC does not have rint() function */
#if (_MSC_VER < 1800)  /*visual studio 2013编译器版本*/
 #define rint(x) ((int)((x)+0.5))
#endif

/* MSC does not have INFINITY defined */
#ifndef INFINITY
#define INFINITY FLT_MAX
#endif
#endif
#endif

安装后测试方式

1.在环境变量中设置SuiteSparse_DIR位置是SuiteSoarse的安装位置,例如C:\Program Files (x86)\Suitesparse

2.测试程序

#include <iostream>
#include "Eigen/Eigen"
#include "Eigen/SPQRSupport"
using namespace Eigen;
int main() {

    SparseMatrix < double > A(4, 4);
    std::vector < Triplet < double > > triplets;

    // 初始化非零元素
    int r[3] = { 0, 1, 2 };
    int c[3] = { 1, 2, 2 };
    double val[3] = { 6.1, 7.2, 8.3 };
    for (int i = 0; i < 3; ++i)
        triplets.push_back(Triplet < double >(r[i], c[i], val[i]));

    // 初始化稀疏矩阵
    A.setFromTriplets(triplets.begin(), triplets.end());
    std::cout << "A = \n" << A << std::endl;

    // 一个QR分解的实例
    SPQR < SparseMatrix < double > > qr;
    // 计算分解
    qr.compute(A);
    // 求一个A x = b
    Vector4d b(1, 2, 3, 4);
    Vector4d x = qr.solve(b);
    std::cout << "x = \n" << x;
    std::cout << "A x = \n" << A * x;

    getchar();
    return 0;
}

2.相同文件夹下的CMakeLists.txt

# -----------------------------------------------
# Test CMake script for building against SuiteSparse
#  http://code.google.com/p/suitesparse-metis-for-windows/
# Created by Jose Luis Blanco (University of Almeria) 2013
# Updated by jesnault ([email protected]) 2014-01-21
# -----------------------------------------------

PROJECT(CholmodExample)

cmake_minimum_required(VERSION 2.8)

# ------------------------------------------------------------------
# Detect SuiteSparse libraries:
# If not found automatically, set SuiteSparse_DIR in CMake to the
# directory where SuiteSparse was built.
# ------------------------------------------------------------------
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../cmakemodule/") # Add the directory where FindSuiteSparse.cmake module can be found.

set(SuiteSparse_USE_LAPACK_BLAS ON)
find_package(SuiteSparse QUIET NO_MODULE)  # 1st: Try to locate the *config.cmake file.
if(NOT SuiteSparse_FOUND)
        #set(SuiteSparse_VERBOSE ON)
        find_package(SuiteSparse REQUIRED) # 2nd: Use FindSuiteSparse.cmake module
        include_directories(${SuiteSparse_INCLUDE_DIRS})
else()
        message(STATUS "Find SuiteSparse : include(${USE_SuiteSparse})")
        include(${USE_SuiteSparse})
endif()
MESSAGE(STATUS "SuiteSparse_LIBS: ${SuiteSparse_LIBRARIES}")
# ------------------------------------------------------------------
#   End of SuiteSparse detection
# ------------------------------------------------------------------

# ------------------------------------------------------------------
# Declare an example program:
# ------------------------------------------------------------------
ADD_EXECUTABLE(cholmod-test cholmod-test.c)
TARGET_LINK_LIBRARIES(cholmod-test ${SuiteSparse_LIBRARIES})

3.命名文件夹src,并将上面两个文件放进去,并创建build文件夹,利用cmake的configure和generate Visual Studio2013工程文件,直接生成就可以(根据自己的FindSuiteSparse.cmake文件的位置设置CMakeLists.txt中变量CMAKE_MODULE_PATH的位置)即可

4.如果不使用cmake工具,记得在VS的工程属性中设置lapack和suitesparse库的安装位置,链接如下库即可

C:\Program Files (x86)\Suitesparse\lib64\metisd.lib
C:\Program Files (x86)\Suitesparse\lib\suitesparseconfigd.lib
C:\Program Files (x86)\Suitesparse\lib\libamdd.lib
C:\Program Files (x86)\Suitesparse\lib\libbtfd.lib
C:\Program Files (x86)\Suitesparse\lib\libcamdd.lib
C:\Program Files (x86)\Suitesparse\lib\libccolamdd.lib
C:\Program Files (x86)\Suitesparse\lib\libcolamdd.lib
C:\Program Files (x86)\Suitesparse\lib\libcholmodd.lib
C:\Program Files (x86)\Suitesparse\lib\libcxsparsed.lib
C:\Program Files (x86)\Suitesparse\lib\libklud.lib
C:\Program Files (x86)\Suitesparse\lib\libldld.lib
C:\Program Files (x86)\Suitesparse\lib\libumfpackd.lib
C:\Program Files (x86)\Suitesparse\lib\libspqrd.lib
C:\Program Files (x86)\Suitesparse\lib\lapack_blas_windows\libblas.lib
C:\Program Files (x86)\Suitesparse\lib\lapack_blas_windows\liblapack.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib

#输出结果如下
b
时间: 2024-10-15 13:02:42

Win10 VS2013 suitesparse-metis-for-windows 1.3.1的相关文章

Win10+vs2013+cocos2dx3.6环境变量的配置

Win10+vs2013+cocos2dx3.6环境变量的配置 1.  下载软件: python vs2012以上 cocos2dx引擎 2.  安装软件: python在相应目录 vs安装到相应目录 cocos2dx解压想到相应目录 3.  环境配置: (1)    配置python环境变量 拷贝python的路径,点击我的电脑属性,选择高级系统设置,环境变量,在系统变量中的path文件中添加python的路径,如果前面没有分号的话需要打上分号. (2)    检验python是否安装成功 打

Win10 VS2013 Compile Intro - C2011 Error

这是因为在Win10上Windows SDK 路径是 c:\program files (x86)\windows kits\8.1, 而我又重新装了一个SDK v7.1A. 在VS2013中我全局加入了include路径和lib路径, 尽管我在preprocess中加入了 _USING_V110_SDK71_, 但仍然不管用. 最后我从VS2013中全局除去了SDK v7.1A的include和lib路径, 编译顺利通过. 1>c:\program files (x86)\microsoft

Win10图片打开方式没有“Windows照片查看器”,如何找回?

如果你是全新安装的Win10正式版,那么就会发现当在图片上点击右键时,“打开方式”菜单里熟悉的“Windows照片查看器”不见了,换成了Win10全新的“照片”应用.而如果你是从Win7/Win8.1升级到的Win10系统,“Windows照片查看器”则会被保留.下面就来分享一下如何找回Win10图片打开方式中的“Windows照片查看器”选项: 首先,打开注册表编辑器(1.Win10打开注册表编辑器的方法), Win10打开注册表编辑器的方法 方法一:运行“regedit”命令打开注册表编辑器

win10自带的防火墙Windows Defender

Windows Defender防火墙(别名:windows守卫者)是微软公司自主研发的一款基于windows自身保护的一款系统. Windows Defender可以对系统进行实时监控,对于Windows的兼容性有着独一无二的优势. 病毒库高度整合,更新速度极快,能够防御和查杀最新的威胁,系统资源占用低,采用最新的防御技术,只有在处理威胁时才会告知用户,平时察觉不到它的存在,基本上是0骚扰0打扰. 怎么打开Windows Defender? 打开win10系统桌面左下角的“开始”菜单,在“所有

PCL库配置出现的问题(WIN10+VS2013)

边看电影边配终于配好了,中间出现了一些问题,在网上很难搜到,可能每个人都碰到的不同.摸索了一会终于都解决了,记录在这里,免得又碰到. PCL是什么东西就不在此介绍了. 主要是参考这篇博客做得,不过我后来碰到了一些问题,这篇博客并没有碰到,可能是版本原因吧 http://blog.csdn.net/aptx704610875/article/details/49947049 准备工作: 编译PCL前首先要编译几个PCL依赖的第三方库,主要是下面几个: 1.Boost 1.59.0 Boost有两种

解决Win10图片打开方式没有“Windows照片查看器”问题

1.打开注册表编辑器(Win+R,Regedit),定位至(建议修改前备份注册表): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities\FileAssociations 2.在右侧窗口中点击右键,选择"新建 – 字符串值",然后把新建的字符串值重命名为 .jpg ,数值数据设置为 PhotoViewer.FileAssoc.Tiff:然后按同样的方法新建名为 .jpeg  .png  .gif

win10迁移时出现“安装 windows 的驱动已被锁定。请解锁该驱动器,然后再试一次”解决方法

故障原因:因为想换一台新机器而又不愿新装系统,所以直接拿两块硬盘复制数据然后对旧PC的系统盘做了一个ghost,然后在新PC上进PE进行还原后,开机报错,提示修复计算机(因为硬件变更了),所以在插入安装盘进行修复时,提示"安装 windows 的驱动已被锁定.请解锁该驱动器,然后再试一次". 解决方法: 1.在进入安装盘的"开始安装"界面时,点击"修复计算机": 2.进入后选择"疑难解答": 3.选择"高级选项&qu

win10+vs2013+Qt5.4 安装方法

环境:win10 cn_visual_studio_ultimate_2013_x86_dvd_3009109 qt-opensource-windows-x86-msvc2013_64_opengl-5.4.1 qt-vs-addin-1.2.3-opensource 这些文件都在云盘上有,需要的可以留下邮箱,我给你发链接: 按步骤将上面三个文件安装好,既可以在VS下运行Qt工程,首次需要vs配置qt和项目环境,然后运行回报缺少dll文件:然后再将qt的环境变量添加就即可.

【Win10 IoT系列 02】Windows 10 IoT系统刻录和安装

硬件材料: 1.树莓派3B开发板,官方购买方式(新加坡发货):树莓派3 B型 2.8GB及以上MicroSD闪存卡(自行采购,速度快点的那种) 3.输出为5V/2A的电源(如果你的安卓手机充电器输出也是2A,那可以直接拿来用) 4.1块7寸的触摸屏,也可以采购官方的,或者是其他途径自己采购,支持HDMI即可 软件工具: 1.Windows 10 IoT Core系统下载:下载页面(IOS镜像地址) 2.上一篇博客要求的开发环境