本文记录在Windows下编译SLEPc的流程。

零、环境

操作系统Windows 11
VS Code1.92.1
MSYS2msys2-x86_64-20250830

一、安装依赖

1.1、依赖

首先,下载并安装MSYS2,

打开MSYS2 MINGW64控制台,运行以下命令安装依赖包,

pacman -S git python base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-msmpi

1.2 PETSc

 参见<Windows下编译安装PETSc>

二、编译安装

2.1 下载源码

下载并解压slepc-3.22.1.zip 

git clone https://github.com/slepc/slepc.git
cd ./slepc/
git checkout v3.22.1

2.2 构建

/usr/bin/python ./configure --prefix=/mingw64/arch-mswin-c-debug

2.3 编译与安装

make SLEPC_DIR=/mingw64/src/slepc-3.22.1 PETSC_DIR=/mingw64/src/petsc-v3.22.1 PETSC_ARCH=arch-mswin-c-debug
make SLEPC_DIR=/mingw64/src/slepc-3.22.1 PETSC_DIR=/mingw64/src/petsc-v3.22.1 install

三、使用SLEPc

# FindSLEPc
# ---------
#
# Locates the SLEPc library using pkg-config module SLEPc
#
# Imported Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines the following IMPORTED target:
#
#  SLEPc::SLEPc        - the SLEPc library
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module will set the following variables in your project:
#
#  SLEPc_FOUND          - if false, do not try to link to SLEPc
#  SLEPc_LIBRARIES      - a list of the full paths to all libraries
#  SLEPc_INCLUDE_DIRS   - a list of all include directories
#  SLEPc_VERSION        - the full version of SLEPc MAJOR.MINOR.PATCH
#  SLEPc_VERSION_MAJOR  - the MAJOR part of SLEPc_VERSION
#  SLEPc_VERSION_MINOR  - the MINOR part of SLEPc_VERSION
#  SLEPc_VERSION_PATCH  - the PATCH part of SLEPc_VERSION
#
# Setting these changes the behavior of the search
#  SLEPc_DIR - directory in which SLEPc resides
#  SLEPc_ARCH - build architecture
# 
# Author: nene
#
# References:
# - slepc/share/slepc/CMakeLists.txt
#cmake_policy(VERSION 3.10)set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)# set root of location to find SLEPc's pkg-config
set(PETSC $ENV{PETSC_DIR}/$ENV{PETSC_ARCH})
set(SLEPC $ENV{SLEPC_DIR}/$ENV{PETSC_ARCH})
set(ENV{PKG_CONFIG_PATH} ${PETSC}/lib/pkgconfig:${SLEPC}/lib/pkgconfig)# Remove the lines below if you do not wish to have SLEPc determine the compilers
execute_process ( COMMAND pkg-config SLEPc --variable=ccompiler COMMAND tr -d '\n' OUTPUT_VARIABLE C_COMPILER)
SET(CMAKE_C_COMPILER ${C_COMPILER})
execute_process ( COMMAND pkg-config SLEPc --variable=cxxcompiler COMMAND tr -d '\n' OUTPUT_VARIABLE CXX_COMPILER)
if (CXX_COMPILER)SET(CMAKE_CXX_COMPILER ${CXX_COMPILER})
endif (CXX_COMPILER)
execute_process ( COMMAND pkg-config SLEPc --variable=fcompiler COMMAND tr -d '\n' OUTPUT_VARIABLE FORTRAN_COMPILER)
if (FORTRAN_COMPILER)SET(CMAKE_Fortran_COMPILER ${FORTRAN_COMPILER})enable_language(Fortran)
endif (FORTRAN_COMPILER)find_package(PkgConfig REQUIRED)if(PKG_CONFIG_FOUND)pkg_search_module(SLEPc REQUIRED IMPORTED_TARGET SLEPc)# Extract version parts from the version informationif(SLEPc_VERSION)set(_SLEPc_versions "")string(REGEX MATCHALL "[0-9]+" _SLEPc_versions ${SLEPc_VERSION})list(GET _SLEPc_versions 0 _SLEPc_version_major)list(GET _SLEPc_versions 1 _SLEPc_version_minor)list(GET _SLEPc_versions 2 _SLEPc_version_patch)set(SLEPc_VERSION ${SLEPc_VERSION} CACHE STRING "Full version of SLEPc")set(SLEPc_VERSION_MAJOR ${_SLEPc_version_major} CACHE INTERNAL "Major version of SLEPc")set(SLEPc_VERSION_MINOR ${_SLEPc_version_minor} CACHE INTERNAL "Minor version of SLEPc")set(SLEPc_VERSION_PATCH ${_SLEPc_version_patch} CACHE INTERNAL "Patch version of SLEPc")unset(_SLEPc_versions)unset(_SLEPc_version_major)unset(_SLEPc_version_minor)unset(_SLEPc_version_patch)endif()  
endif()include (FindPackageHandleStandardArgs)
find_package_handle_standard_args (SLEPcREQUIRED_VARS SLEPc_FOUND SLEPc_INCLUDE_DIRS SLEPc_LIBRARIESVERSION_VAR SLEPc_VERSION)if(NOT TARGET SLEPc::SLEPc)add_library(SLEPc::SLEPc ALIAS PkgConfig::SLEPc)
endif()mark_as_advanced(SLEPc_INCLUDE_DIRS SLEPc_LIBRARIES SLEPc_VERSION_MAJOR SLEPc_VERSION_MINOR SLEPc_VERSION_PATCH VERSION_VAR SLEPc_VERSION)

网络

SLEPc

 Windows下编译安装PETSc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/96462.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/96462.shtml
英文地址,请注明出处:http://en.pswp.cn/web/96462.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运动生理实验室解决方案 人体生理实验整体解决方案

&#xff08;一&#xff09;、硬件参数 集成化折叠式无创型生理实验平台&#xff1a;1.1、 集成化设计:至少包含设备操作台、可收纳式交互实验桌、可收纳式检查床、生物信号 采集处理系统、计算机工作站集成于一体的高度集成设计&#xff1b;&#xff08;o561-6o623…

Axure RP 9 最新版安装包+安装步骤Win系统适用(附安装包)

Axure RP 9​ 是一款专业的 ​原型设计工具&#xff0c;主要用于 ​网站、APP、软件等产品的界面设计和交互原型制作。 一、准备工作 ​下载好安装包​ Axure RP 9安装包下载&#xff1a;https://pan.quark.cn/s/bc2b35011106 二、开始安装 第一步&#xff1a;双击运行安装包…

AutoMQ 亮相首尔:KafkaKRU 分享日志流处理新思路

全球 Kafka 社区都在关注 AutoMQ&#xff01;凭借在 Kafka 生态的独特创新&#xff0c;AutoMQ 深受 Kafka 用户喜爱&#xff0c;已成为众多企业和开发者的首选实时数据解决方案。昨天&#xff0c;我们非常高兴看到来自韩国的 KafkaKRU 核心社区在首尔举办第2届官方线下交流会。…

从零开始使用 axum-server 构建 HTTP/HTTPS 服务

axum-server 是 Rust 生态中为 axum 框架设计的高性能服务器实现&#xff0c;基于 hyper&#xff08;底层 HTTP 引擎&#xff09;和 tower&#xff08;服务抽象&#xff09;构建&#xff0c;支持 HTTP/1、HTTP/2 及 HTTPS。本教程将从环境准备到实战功能&#xff0c;一步步带你…

电路运行的核心-RTC

1. 时钟芯片是什么&#xff1f;时钟芯片&#xff0c;更准确的名称是实时时钟芯片&#xff0c;英文是 Real-Time Clock&#xff0c;简称 RTC。它是一个专用的集成电路&#xff0c;其核心功能是追踪时间和日历。你可以把它想象成电子设备里的一个“电子表”或“日历钟”。关键特性…

AR消防头盔:火场救援的智能“透视眼”

在浓烟弥漫、能见度几乎为零的火场中&#xff0c;消防员们依靠什么来精准掌握队友的位置和状态&#xff1f;答案是AR智能消防头盔&#xff08; www.teamhelper.cn &#xff09;。这种头盔通过多种定位技术的融合&#xff0c;为消防员提供了强大的团队协作和指挥协同能力&#x…

基于大模型的个性化推荐系统实现探索与应用

前言 如果你一直在跟着Fanstuck博主的脚步探索AI大模型的相关内容&#xff0c;从最初的大模型Prompt工程解析&#xff0c;DeepSeek全面解析&#xff0c;到实际的私有化大模型开发部署&#xff0c;再到深入NL2SQL、知识图谱大模型和ChatBI等更高阶应用.我是Fanstuck&#xff0c…

【已解决】Echarts 力学布局图谱切换图例的时候线条残留在了画布上

在用Vue3封装 ECharts 的力导向图&#xff08;graph force&#xff09;时&#xff0c;我遇到一个问题&#xff1a;点击图例切换节点显隐后&#xff0c;线条残留在原位置&#xff0c;画布出现“脏线条”。&#xff08;问题如下&#xff1a;&#xff09;这个问题本质上是因为…&…

Vue动态实时字数限制

文章目录&#x1f680; Vue.js 动态实时字数限制指南1. 核心实现方法1.1 使用计算属性 (Computed Property)1.2 结合计算属性的 Setter/Getter1.3 使用监听器 (Watcher)1.4 使用自定义指令 (Custom Directive)1.5 原生 maxlength 属性结合 Vue2. 特殊场景处理2.1 处理粘贴操作2…

荣耀手机无法连接win11电脑,错误消息:“无法在此设备上加载驱动程序 (hn_usbccgpfilter.sys)。”解决方案

错误发生背景&#xff1a; 本人于2024年月底买了一部荣耀Magic7 RSR手机&#xff0c;当时在win10的rog电脑上可以正常连接&#xff0c;但是后面换了一个acer的win11电脑后&#xff0c;一开始可以正常连接&#xff0c;但是要我下载荣耀Hisuite&#xff08;荣耀手机助理&#xff…

springboot env 多环境配置入门与实战

Spring Boot3 Env 项目地址 https://gitee.com/supervol/loong-springboot-study &#xff08;记得给个start&#xff0c;感谢&#xff09; Env 概述 在 Spring Boot 3 开发中&#xff0c;多环境配置是核心能力之一&#xff0c;其目的是为不同场景&#xff08;如开发、测试、…

利用conda打包/复刻生信环境

01、写在前面 大家拿到自己的服务器(趁开学| 入手足够完成硕博生涯的生信环境)后可能需要安装很多的软件与包&#xff0c;Linux中许多包的安装依赖过多、安装复杂。而conda作为一个能够直接安装超过90%软件的"管家"&#xff0c;能够像Windows和手机中的应用商店那样…

数据分析:合并

&#x1f537; DA37&#xff1a;统计运动会项目报名人数&#xff08;仅输出有人报名的项目&#xff09;✅ 题目描述给定两个 CSV 文件&#xff1a;items.csv&#xff1a;包含项目信息&#xff08;item_id, item_name, location&#xff09;signup.csv&#xff1a;包含员工报名信…

高并发内存池(一):项目介绍和ThreadCache(线程缓存)实现

前言&#xff1a;本文将要介绍的高并发内存池&#xff0c;它的原型是Google的⼀个开源项⽬tcmalloc&#xff0c;全称Thread-Caching Malloc&#xff0c;近一个月我将以学习为目的来模拟实现一个精简版的高并发内存池&#xff0c;并对核心技术分块进行精细剖析&#xff0c;分享在…

RK3399平台ffmpeg-VPU硬编码录制USB摄像头视频、H264或MJPEG编码

文章目录 1 前言2 项目内容详细说明2.0 功能2.1 工程文件夹说明 3 代码3.1 CameraThread类3.1 CameraThreadImpl类 4 资源下载 1 前言 在某项目中需要在RK3399平台实现USB摄像头画面的实时预览、视频录制、拍照存储等功能。   先来看需要实现的最终效果。    ffmpeg USB摄…

解决蓝牙耳机连win11电脑画质依托答辩问题

以wh910n蓝牙耳机为例 设置-系统-声音-输出&#xff08;耳机&#xff09;-常规&#xff08;输出点不允许&#xff09;然后删除wh910n蓝牙设备 重新配对蓝牙耳机

独立显卡和集成显卡切换电脑卡住了怎么办?

你是不是也遇到过这种情况——正忙着切换显卡呢&#xff0c;电脑突然就卡住了&#xff0c;鼠标不动、屏幕定格&#xff0c;怎么按都没反应&#xff1f;其实这种问题挺常见的&#xff0c;尤其是用了双显卡的笔记本或者工作站。别急着强制关机&#xff0c;嗯&#xff0c;咱们一步…

Java根据模版导出PDF文件

问题 工作中经常有这样的需求&#xff0c;将一些数据&#xff0c;导出为下图的PDF文件&#xff0c;那Java怎么做呢&#xff1f;今天手把手教你 准备模版 模版地址&#xff1a;https://download.csdn.net/download/ZHUSHANGLIN/91923381 修改模版使用AcrobatProPortable工具…

力扣hot100:环形链表(快慢指针法)(141)

一、题目描述二、思路分析这是链表题目中的经典问题&#xff0c;核心就是 如何判断链表是否有环。 常见的两种方法有&#xff1a;哈希表法&#xff1a;用一个集合存储访问过的节点&#xff0c;如果再次遇到相同节点说明有环。缺点&#xff1a;需要额外的空间&#xff0c;空间复…

AI 智能编码工具:重塑开发效率的革命,从 GitHub Copilot 到国产新秀的全面解析

目录 引言 一、主流智能编码工具深度测评&#xff1a;从功能到实战 1. GitHub Copilot&#xff1a;AI 编码的 “开山鼻祖” 核心特性与实战代码 优缺点总结 2. Baidu Comate&#xff1a;文心大模型加持的 “国产之光” 核心特性与实战代码 优缺点总结 3. 通义灵码&…