Windows下編譯SLEPc

本文記錄在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. 通義靈碼&…