代码::块和MPI
Code::Blocks and MPI
我安装了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给出以下建议:
如果您将编译器安装在非默认目录上,启动代码::块。如果是第一次启动编译器将被自动检测到。如果没有,请转至"设置/配置插件/编译器",选择您安装的编译器,切换到"程序"选项卡,然后按"自动检测"。如果你收到消息说编译器被自动检测到了,祝贺你!如果没有,那么按下"自动检测"按钮旁边的三个点并手动选择编译器的安装目录。
相关文章:
- 为什么这个C++程序在代码::块和在线 IDE 之间返回不同的结果?
- 特征压缩稀疏矩阵的 MPI 接收和发送
- 如何在C++类中正确使用 CUDA 中的块和线程
- 在拆分呼叫上提升MPI块
- QT信号和插槽.滑块和进度栏
- 相同的测试用例,但代码块和Ideone的输出不同
- 代码::块和boost 1.55:当存在动态库时,不使用静态库
- MPI发送和接收的通信成本
- 如何使用 MPI 发送和接收字符串
- 代码块和lambdas c++11
- 代码块和 G++ 错误"is private"
- 简单C++程序在 Xcode、代码块和终端中运行错误
- 在 G++ Ubuntu 中工作,但在 Visual Studio 中显示分段错误,在 Mac 中的代码块和 G++ 中
- 使用 CUDA 中的不同块和线程进行性能优化
- 块和表达式必须具有常量值错误
- 代码::块和MPI
- 为什么shared_ptr<>必须分别分配控制块和托管对象?
- 在try-catch语句中的try块和所有catch时钟的末尾执行相同的操作
- 矢量实现了许多块和没有调整大小的副本
- C++ 代码块和SFML库故障