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

Neko v0.8.0编译报错:undefined reference to MPI_Comm_f2c与ompi_mpi_byte

Neko v0.8.0编译报错(undefined reference)解决指南

问题现象

执行make编译Neko v0.8.0时出现链接错误,报错信息如下:

comm/comm_wrapper.o: In function neko_comm_wrapper_init: 
/WORK/thuscc24team13_work/neko-0.8.0/src/comm/comm_wrapper.c:16:
undefined reference to MPI_Comm_f2c

gs/bcknd/device/device_mpi.o: In function device_mpi_isend:
/WORK/thuscc24team13_work/neko-0.8.0/src/gs/bcknd/device/device_mpi.c:66:
undefined reference to ompi_mpi_byte

gs/bcknd/device/device_mpi.o: In function device_mpi_irecv:
/WORK/thuscc24team13_work/neko-0.8.0/src/gs/bcknd/device/device_mpi.c:78:
undefined reference to ompi_mpi_byte

当前环境配置

已完成jsonfortran安装,导出相关环境变量,当前环境信息如下:

环境变量

$ echo $CC
mpiicc

$ echo $FC
mpiifort

$ echo $PKG_CONFIG_PATH
/home/thuscc24team13/WORK/json-fortran/main/lib64/pkgconfig:
/apps/compilers/intel/oneapi/v2023.0.0.25537/vtune/2023.0.0/include/pkgconfig/lib64:
/apps/compilers/intel/oneapi/v2023.0.0.25537/vpl/2023.0.0/lib/pkgconfig:
/apps/compilers/intel/oneapi/v2023.0.0.25537/tbb/2021.8.0/env/../lib/pkgconfig:
/apps/compilers/intel/oneapi/v2023.0.0.25537/mpi/2021.8.0/lib/pkgconfig:
/apps/compilers/intel/oneapi/v2023.0.0.25537/mkl/2023.0.0/lib/pkgconfig:
/apps/compilers/intel/oneapi/v2023.0.0.25537/ippcp/2021.6.3/lib/pkgconfig:
/apps/compilers/intel/oneapi/v2023.0.0.25537/inspector/2023.0.0/include/pkgconfig/lib64:
/apps/compilers/intel/oneapi/v2023.0.0.25537/compiler/2023.0.0/lib/pkgconfig

已加载模块

$ module list
Currently Loaded Modulefiles:
1) compilers/intel/oneapi-2023/compiler/config    
2) compilers/intel/oneapi-2023/mkl/config    
3) compilers/intel/oneapi-2023/mpi/config   
4) tools/cmake/v3.25.2  
5) compilers/intel/oneapi-2023/config 
6) mpi/openmpi/v4.1.4 

解决步骤

这类链接错误源于MPI库链接不正确,或同时加载了不同MPI实现(Intel MPI与OpenMPI)导致冲突,按以下步骤处理:

  1. 清理冲突MPI模块
    当前同时加载Intel oneAPI MPI和OpenMPI,先卸载OpenMPI模块:

    module unload mpi/openmpi/v4.1.4
    
  2. 统一MPI环境变量
    确保编译工具链指向Intel MPI的编译器:

    export MPIFC=mpiifort
    export CC=mpiicc
    export FC=mpiifort
    
  3. 重新配置编译环境
    进入Neko源码目录,清理旧编译文件后重新执行cmake配置:

    cd /WORK/thuscc24team13_work/neko-0.8.0
    make clean
    rm -rf CMakeCache.txt CMakeFiles/
    cmake . -DCMAKE_C_COMPILER=mpiicc -DCMAKE_Fortran_COMPILER=mpiifort -DJSONFORTRAN_DIR=/home/thuscc24team13/WORK/json-fortran/main
    
  4. 重新编译
    执行多线程编译:

    make -j$(nproc)
    

额外排查方案

若上述步骤无效,检查pkg-config对MPI库的识别情况:

# 检查Intel MPI
pkg-config --libs intelmpi

若pkg-config无法正确识别,可手动在cmake时指定MPI库路径:

cmake . -DCMAKE_C_COMPILER=mpiicc -DCMAKE_Fortran_COMPILER=mpiifort -DMPI_C_LIBRARIES=/apps/compilers/intel/oneapi/v2023.0.0.25537/mpi/2021.8.0/lib/libmpi.so -DMPI_Fortran_LIBRARIES=/apps/compilers/intel/oneapi/v2023.0.0.25537/mpi/2021.8.0/lib/libmpi_mpifh.so

内容的提问来源于stack exchange,提问作者Just-lose-it

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:10:53