我安装了Code :: Blocks和MPICH2并配置了我的Code :: Blocks,如下所示:
我的编译器总是(因为线程)有-std = c ++ 0x选项! 我也将MPICH2的bin目录添加到我的路径中。我的操作系统赢了7 x64。 但是当我尝试编译一个简单的hello world程序时,我得到了这个错误:
C:\Users\1111\Desktop\CPP Project\MPI\First_MPI\main.cpp|9|undefined reference to `MPI_Init'|
C:\Users\1111\Desktop\CPP Project\MPI\First_MPI\main.cpp|10|undefined reference to `MPI_Comm_rank'|
C:\Users\1111\Desktop\CPP Project\MPI\First_MPI\main.cpp|11|undefined reference to `MPI_Comm_size'|
C:\Users\1111\Desktop\CPP Project\MPI\First_MPI\main.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;
}
我该如何解决?
答案 0 :(得分:1)
您看到的错误来自您的编译器无法找到libmpich。
你有C:\ Program Files \ MPICH2 \ bin \ mpicc吗?您应该使用它来构建您的程序。
如果您没有mpicc包装器,则需要将mpich库添加到link命令中。
您应参阅Code:Blocks文档以添加编译器。特别, http://svn.code.sf.net/p/codeblocks/code/trunk/COMPILERS提供了以下建议:
如果您将编译器安装在默认目录以外的目录中, 启动Code :: Blocks。如果是第一次启动它,那么 编译器将被自动检测。如果没有,请转到&#34;设置/配置 插件/编译器&#34;,选择你安装的编译器,切换到 &#34;程序&#34;选项卡并按&#34;自动检测&#34;。如果你收到消息说 编译器是自动检测到的,恭喜!如果没有,那么 按下&#34;自动检测&#34;旁边的三个点按钮。按键 并手动选择编译器的安装目录。