为什么MPI在Visual Studio 2015中不起作用?

时间:2015-11-11 21:24:45

标签: c++ c visual-studio visual-studio-2015 mpi

我使用管理员权限从控制台下载并安装了mpich2-1.0.8p1-win-x86-64.msi。我创建了空的win32控制台项目,我创建了文件code.cpp并粘贴了这个示例代码。

#include <stdio.h>
#include "mpi.h"
int main(int argc, char* argv[])
{
    int ProcNum, ProcRank, RecvRank;
    MPI_Status Status;
    MPI_Init(&argc, &argv);
    MPI_Comm_size(MPI_COMM_WORLD, &ProcNum);
    MPI_Comm_rank(MPI_COMM_WORLD, &ProcRank);
    if (ProcRank == 0)
    { 
            printf("\n Hello from process %3d", ProcRank);
        for (int i = 1; i < ProcNum; i++)
        {
            MPI_Recv(&RecvRank, 1, MPI_INT, MPI_ANY_SOURCE,
                MPI_ANY_TAG, MPI_COMM_WORLD, &Status);
            printf("\n Hello from process %3d", RecvRank);
        }
    }
    else
        MPI_Send(&ProcRank, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);
    MPI_Finalize();
    return 0;
}

后来我将项目属性转到VC ++目录并添加了包含目录和库目录。在链接器/输入/附加依赖项中,我写了mpi.lib,在C / C ++ /语言中我允许Open MP支持。当我编译我的项目时,我遇到了奇怪的错误。你能帮助我吗?我无法理解我做错了什么,因为我是用教程做的。

errors

1 个答案:

答案 0 :(得分:3)

您的第一个(也是唯一的)警告表明您正在将64位库与32位版本链接起来。您需要提供32位库或构建64位体系结构以消除链接器错误。