在Win10系统下使用与安装metis

本文详细介绍在Win10系统下搭建C++项目并运行图分割代码的过程。包括CMake GUI的下载、使用,VS2019的下载,用VS生成项目工程,创建新的C++项目,添加依赖,最后运行代码生成partition.txt文件,将图分成两部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Win10系统下的使用和安装:

  1. CMake GUI的下载:

(1)首先去cmake官网下载相关文件

(2)没必要下载最新的,一般最新的版本可能会存在一些bug,下一个稍微早一些版本的就行,看好自己的电脑是64位还是32位(如图下载的是3.16.5,64位的版本)

(3)傻瓜时安装就行

2.CMake GUI的使用

(1)首先先去下载metis,解压后就是metis-X.X.X的样式,然后看一下该文件所在位置,后续操作会用到。

(2)打开CMake GUI软件

(3)第一行的文件选择(1)中说到的位置,第二行的文件选择的是(1)中文件内部的一个build文件夹(PS:注意第一次使用时候build是空的,如果在build不为空的情况进行后续工作,可能会报错

(4)按Configure按钮,会跳出一个弹窗,让你选择编译器,一般保持默认,直接Finish就可以。

(5)然后就点击就会出现下图的情况,不用管,等下面的输出框出现Configure Done时候,就可以点击Generate按钮就可,只要输出框显示Generate Done就完成了配置,生成了METIS.sln文件。

  1. 修改gk_arch.h文件
  1. 在解压的文件夹metis-5.1.0中找到GKlib文件夹,打开文件夹。
  2. 在GKlib文件夹中找到gk_arch.h,打开文件。

  1. 修改文件内容(PS:用自己习惯的写c++的软件即可,若都没有,可以用记事本打开进行修改),并保存
  2. 原本:

改后:(注意变蓝的那一行,把那一行注释掉就行

3. VS2019的下载

(1)下载这个的话去官网就可以(目前VS已经到了2022版本,但好像CMake GUI的程序可以选择的VS是2019版本的,所以我下载的是VS2019版本,如果有VS2022版本可以试一下能不能用,社区版就够用了,如果有资源的可以使用专业版)

(2)安装时,记得把下图红圈的C++的桌面开发点上。

5. 用VS生成项目工程

(1)刚刚看过的METIS.sln文件,在build文件夹下。打开VS,文件->打开->项目/解决方案,弹出弹窗让我们选路径,在build文件夹的路径下选择METIS.sln文件,打开,整个工程就被导入到VS中了,然后我们就可以看见如下图所示的ALL_BUILD。(ps:Cmake生成VS工程中的ALL_BUILD是用于编译整个项目的工程。ALL_BUILD相当于makefile里面的默认目标,构建整个项目,但不包括install和单元测试等

   (2) 原来下图中Release的位置可能是Debug,将其改为Release,选择对应的位数,如x64

   (3) 在解决方案管理器中,右击ALL_BUILD,选择“生成”

6. 在工程下创建新的C++项目

(1) vs中新建一个空项目,创建一个cpp文件,填入以下代码

关键代码处:

(2) 创建文件graph.txt,并将其路径填到代码中的“文件路径”处

其所表示的图如下:(带有权重的图)

•第1行的7和11表示有7个点和11条边。

•第i+1行表示点i所邻接的点,后面紧跟边的权重。

•如,第二行的前两个数“4 1”,表示点1与点5邻接,邻接边权重为1

PS:由于输入要求,顶点标号必须从0开始,文件中点0代表点1,以此类推

7.添加依赖

(1)项目(工程)->属性->配置属性->c/c++->常规->附加包含目录->编辑->新行->…(小按钮)选择工程头文件(metis.h)的路径——“PATH\metis-5.1.0\include”

(2)项目(工程)->属性->配置属性->连接器->常规->附加库目录->编辑->新行->…(小按钮)选择lib文件所在路径——"PATH\metis-5.1.0\build\libmetis\Release"

(3)项目(工程)->属性->配置属性->连接器->输入->附加依赖项 在上面的文本框中输入lib文件——metis.lib

8.运行代码

(1)生成一个partition.txt文件

VS2019中的调试结果:

partition.txt文件显示

其表示含义为把图分成了两部分,顶点1,2,3,5为一部分;4,6,7为一部分。

至此在window10系统下的代码就运行完毕了

metis-5.1.0安装包和manual手册 2 What is new in version 5.0 4 2.1 Changes in the command-line programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1 Migration issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Changes in the API routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.1 Migration issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3 Overview of METIS 6 3.1 Partitioning a graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 Alternate partitioning objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3 Support for multi-phase and multi-physics computations . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4 Partitioning a mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.5 Partitioning for heterogeneous parallel computing architectures . . . . . . . . . . . . . . . . . . . . . 8 3.6 Computing a fill-reducing ordering of a sparse matrix . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.7 Converting a mesh into a graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4 METIS’ stand-alone programs 9 4.1 Input file formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.1.1 Graph file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.1.2 Mesh file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.1.3 Target partition weights file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2 Output file formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2.1 Partition file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邂逅的光阴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值