【发布时间】:2014-10-17 21:59:47
【问题描述】:
我安装了 Code::Blocks 和 MPICH2 并配置了我的 Code::Blocks,如下所示:
- 搜索目录(编译器):C:\Program Files\MPICH2\include
- 搜索目录(链接器):C:\Program Files\MPICH2\lib
- 链接器设置:mpi.lib
我的编译器总是(因为线程)有 -std=c++0x 选项! 我还将 MPICH2 的 bin 目录添加到我的路径中。我的操作系统是win 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;
}
我该如何解决?
【问题讨论】:
-
确保 MPICH2 和您的项目具有相同的“位数”,即两者都是 32 位或都是 64 位。另外,查看
C:\Program Files\MPICH2\lib目录并确保没有调用该库,例如mpich.lib.
标签: c++ c mpi codeblocks