MPI和libevent混合代码导致Ubuntu出现分段错误

MPI和libevent混合代码导致Ubuntu出现分段错误,ubuntu,gcc,mpi,openmpi,libevent,Ubuntu,Gcc,Mpi,Openmpi,Libevent,我有一个简单的C程序重现了我最近遇到的一个问题 /*文件名:a.c*/ #包括 #包括 int main(int argc,char*argv[]) { MPI_Init(&argc,&argv); 事件_init(); MPI_Finalize(); } 当我使用gcc 9.1.0、libevent 2.1.11-1和openmpi 4.0.1-1在ArchLinux环境中编译时,程序没有问题: gcc a.c-levent$(mpicc-showme:link)$(mpicc-showme

我有一个简单的C程序重现了我最近遇到的一个问题

/*文件名:a.c*/
#包括
#包括
int main(int argc,char*argv[])
{
MPI_Init(&argc,&argv);
事件_init();
MPI_Finalize();
}
当我使用gcc 9.1.0、libevent 2.1.11-1和openmpi 4.0.1-1在ArchLinux环境中编译时,程序没有问题:

gcc a.c-levent$(mpicc-showme:link)$(mpicc-showme:compile)
然而,在Ubuntu上,似乎
$(mpicc--showme:compile)
还将包含一些来自
openmpi/opal/mca/event/libevent2021/libevent
的libevent头,这些头与已经安装的libevent dev相冲突

因此,我只提取
的头路径,然后使用以下命令编译和链接程序:

gcc a.c-levent$(mpicc-showme:link)-I/usr/lib/x86\u 64-linux-gnu/openmpi/include
程序将引发分段错误


这是建筑环境的一个缺陷还是我做得不对?

建议发行版尽可能使用自己的库(libevent、hwloc等),而不是嵌入在openmpi中的库(有一些版本要求)。所以,如果OpenMPI可以与发行版提供的libevent打包在一起,那么这可以被视为bug@GillesGouaillardet谢谢,我现在更确认这是一个环境问题。