使用MPI,gcc时出错

时间:2014-06-20 00:13:00

标签: c++ gcc mpi codeblocks

我正在尝试使用Microsoft MPI运行hello world程序,Windows平台使用GCC编译器和Code :: Blocks IDE。

这是我的代码:

#include <iostream>
#include <mpi.h>
using namespace std;

int main(int argc, char ** argv)
{
MPI_Init(&argc,&argv);
cout<<"Hello World!"<<endl;
MPI_Finalize();
}

以下是我编译程序的方法:

g++ -o file file.cpp -I "path to MPI" -lmpi 

我在这里使用了Microsoft MPI。

但是我在链接时遇到以下错误:

undefined reference to `MPI_Init@8
undefined reference to `MPI_Finalize@0

这些错误意味着什么?我在编译命令时有任何错误吗?

更新: 修改了MSMPI的编译命令,但没有运气。

g++ -o file file.cpp -I "C:\this folder" -L "path to msmpi.dll" -lmsmpi

-I "C:\this folder"适用于标头文件mpi.h -L "path"适用于其他msmpi.dll

但是获得相同的错误消息。有谁评论?

1 个答案:

答案 0 :(得分:1)

  

GCC语法为:

     

$ gcc [-Ldir] -llibname [options] [source files] [object files] [-o outfile]

     

-l选项链接到库文件。
   -L选项在目录中查找库文件。
   -static选项阻止在支持动态链接的系统上与共享库链接。

<小时/> 将-l选项与名为libfoo.a的库文件一起使用的示例也可以是libfoo.so和名为bar.cpp的src文件:

  

$ gcc -static -lfoo -o bar.exe

<小时/> 使用-L选项的示例,其中名为libfoo.a的库文件位于路径为./libs (./ is the current directory)的文件夹中,src文件名为bar.cpp

  

$ gcc -Llibs -lfoo bar.cpp -o bar.exe