You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非root安装PETSc后,如何使用CMake编译并链接?

使用CMake配置PETSc开发环境

方法1:使用PETSc官方CMake模块(推荐)

PETSc原生支持CMake,官方提供了现成的查找模块,配置流程如下:

  1. 确认PETSC_DIR路径
    你的PETSc安装路径为/Users/userid/Downloads/petsc/build,可以将其设为环境变量方便CMake查找:

    export PETSC_DIR=/Users/userid/Downloads/petsc/build
    

    也可以将该命令添加到~/.bashrc或~/.zshrc中,实现永久生效。

  2. 编写CMakeLists.txt
    以你的源文件为main.c为例,基础配置示例如下:

    cmake_minimum_required(VERSION 3.16)
    project(MyPETScProject C)
    
    # 查找PETSc包
    find_package(PETSc REQUIRED)
    
    # 创建可执行文件
    add_executable(my_app main.c)
    
    # 链接PETSc的编译规则与库文件
    target_link_libraries(my_app PRIVATE PETSc::PETSc)
    
  3. 编译项目
    在项目根目录执行以下命令完成编译:

    mkdir build && cd build
    cmake ..
    make
    

方法2:手动导入PETSc编译/链接参数

如果需要更精细的控制,可以通过petsc-config工具提取参数,再在CMake中配置:

  1. 获取PETSc参数
    在终端执行以下命令,分别得到编译和链接所需的参数:

    # 获取编译选项
    petsc-config --cflags
    # 获取链接选项
    petsc-config --libs
    
  2. 编写CMakeLists.txt
    将提取到的参数整合到配置文件中:

    cmake_minimum_required(VERSION 3.16)
    project(MyPETScProject C)
    
    # 调用petsc-config获取参数
    execute_process(
        COMMAND petsc-config --cflags
        OUTPUT_VARIABLE PETSC_CFLAGS
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )
    execute_process(
        COMMAND petsc-config --libs
        OUTPUT_VARIABLE PETSC_LIBS
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )
    
    # 创建可执行文件并设置编译、链接规则
    add_executable(my_app main.c)
    target_compile_options(my_app PRIVATE ${PETSC_CFLAGS})
    target_link_libraries(my_app PRIVATE ${PETSC_LIBS})
    

验证配置

编译完成后,可通过以下命令测试程序运行:

# 单进程运行
./my_app
# 多进程运行(基于OpenMPI)
mpiexec -n 2 ./my_app

内容的提问来源于stack exchange,提问作者Al-Farouq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:12:43