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

Windows系统CLion中运行MSMPI失败的CMake配置问题

解决Win10下CLion中GCC编译MPI程序的CMake配置问题

作为MPI新手在Win10的CLion里跑第一个Hello World就卡壳确实挺闹心的,我来帮你拆解下问题根源,一步步搞定配置:

问题分析

你之前的CMake写法有两个关键问题:

  1. 顺序错误:你先手动指定了${MSMPI_INC}的头文件路径,再调用find_package(MPI)——但find_package本身会自动探测MPI的头文件和库路径,手动提前指定不仅没必要,还可能干扰CMake的探测逻辑;
  2. 环境变量未生效:${MSMPI_INC}这个变量如果没提前在系统环境变量里配置好,CMake根本识别不到它,等于这条include_directories指令完全没起作用。

另外,Windows下的Microsoft MPI需要CMake明确找到它的安装路径,不然默认的FindMPI模块可能找不到对应的编译工具和依赖文件。

正确配置步骤

1. 先确认Microsoft MPI的安装

确保你已经安装了完整的Microsoft MPI包:包括Runtime和SDK(默认安装路径是C:\Program Files\Microsoft MPI)。

  • 头文件路径:C:\Program Files\Microsoft MPI\Include
  • 库文件路径(64位):C:\Program Files\Microsoft MPI\Lib\x64
  • 编译工具路径:C:\Program Files\Microsoft MPI\Bin(里面有mpicc.exe、mpiexec.exe等工具)

2. 调整CMakeLists.txt写法

下面是两种可靠的配置方式,选一种即可:

方式一:让CMake自动探测(推荐)

如果你的系统环境变量里已经把Microsoft MPI的Bin目录加入了PATH,或者手动指定MPI根路径,CMake可以自动找到依赖:

cmake_minimum_required(VERSION 3.14)
project(A C)

# 手动指定MPI根路径(如果CMake自动找不到的话,根据你的安装路径修改)
set(MPI_ROOT "C:/Program Files/Microsoft MPI")

# 查找MPI依赖
find_package(MPI REQUIRED)

# 添加可执行文件
add_executable(A mpi_hello.c)

# 关联MPI的头文件和库(现代CMake写法,更规范)
target_include_directories(A PRIVATE ${MPI_C_INCLUDE_DIRS})
target_link_libraries(A PRIVATE ${MPI_C_LIBRARIES})

方式二:手动指定所有路径(适合CMake探测失败的情况)

如果自动探测还是不行,可以直接硬编码路径(不推荐,但应急好用):

cmake_minimum_required(VERSION 3.14)
project(A C)

# 手动指定MS MPI的头文件和库路径
set(MSMPI_INCLUDE "C:/Program Files/Microsoft MPI/Include")
set(MSMPI_LIB "C:/Program Files/Microsoft MPI/Lib/x64")

include_directories(${MSMPI_INCLUDE})
link_directories(${MSMPI_LIB})

add_executable(A mpi_hello.c)
# 链接MPI的库文件
target_link_libraries(A msmpi.lib)

3. CLion的额外配置

如果还是出现Could NOT find MPI的错误,你可以在CLion里手动给CMake传递参数:

  1. 打开File -> Settings -> Build, Execution, Deployment -> CMake
  2. 在CMake options里添加:
    -DMPI_ROOT="C:/Program Files/Microsoft MPI"
    
  3. 点击Apply后,重新加载CMake项目。

4. 运行程序的正确姿势

编译成功后,不能直接点击CLion的运行按钮(这样只会启动单个进程),需要用mpiexec启动多进程:

  1. 打开Run -> Edit Configurations
  2. 新建一个Application配置:
    • Program选择C:\Program Files\Microsoft MPI\Bin\mpiexec.exe
    • Arguments填写-n 4 ./A.exe(-n 4表示启动4个进程,./A.exe是你的可执行文件路径,根据实际情况调整)
  3. 保存配置后,点击运行就能看到多进程的Hello World输出了。

内容的提问来源于stack exchange,提问作者Billy Yan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 23:38:11