我正在尝试使用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
但是获得相同的错误消息。有谁评论?
答案 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