代码::块和MPI

Code::Blocks and MPI

本文关键字:MPI 块和 代码      更新时间:2023-10-16

我安装了Code::Blocks和MPICH2,并配置了我的Code::Block,如下所示:

  • 搜索目录(编译器):C:\Program Files\MPICH2\include
  • 搜索目录(链接器):C:\Program Files\MPICH2\lib
  • 链接器设置:mpi.lib

我的编译器总是(因为线程)有-std=c++0x选项!我还在路径中添加了MPICH2的bin目录。我的操作系统是win 7 x64。但是当我试图编译一个简单的helloworld程序时,我得到了以下错误:

C:Users1111DesktopCPP ProjectMPIFirst_MPImain.cpp|9|undefined reference to `MPI_Init'|
C:Users1111DesktopCPP ProjectMPIFirst_MPImain.cpp|10|undefined reference to `MPI_Comm_rank'|
C:Users1111DesktopCPP ProjectMPIFirst_MPImain.cpp|11|undefined reference to `MPI_Comm_size'|
C:Users1111DesktopCPP ProjectMPIFirst_MPImain.cpp|13|undefined reference to `MPI_Finalize'| 
||=== Build failed: 4 error(s), 36 warning(s) (0 minute(s), 1 second(s)) ===|
and finally this is my code!

我的代码也是:

 #include <iostream>
 #include "mpi.h"
 #include <string>
 using namespace std;
 int main(int argc, char *argv[])
 {
    int my_rank;
    int my_size;
    MPI_Init(&argc, &argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
    MPI_Comm_size(MPI_COMM_WORLD, &my_size);
    cout<< "I'm rank (processor number) " << my_rank << " of " <<  my_size << "processor";
    MPI_Finalize();
    return 0;
}

我该怎么修?

您看到的错误来自编译器找不到libmpich。

您有C:\Program Files\MPICH2\bin\mpicc吗?你应该用它来构建你的程序。

如果没有mpicc包装器,则需要将mpich库添加到链接命令中。

您应该参考Code:Blocks文档来添加编译器。明确地http://svn.code.sf.net/p/codeblocks/code/trunk/COMPILERS给出以下建议:

如果您将编译器安装在非默认目录上,启动代码::块。如果是第一次启动编译器将被自动检测到。如果没有,请转至"设置/配置插件/编译器",选择您安装的编译器,切换到"程序"选项卡,然后按"自动检测"。如果你收到消息说编译器被自动检测到了,祝贺你!如果没有,那么按下"自动检测"按钮旁边的三个点并手动选择编译器的安装目录。