ldd输出显示其函数未被调用的共享对象文件

时间:2010-04-16 07:07:31

标签: linux multithreading mpi ldd

我在Open MPI创建的可执行文件上运行了ldd命令。它显示了对libpthread.so的引用 使用LD_PRELOAD变量我创建了自己的pthread_create实现,但是从它的输出看来,似乎MPI实现并没有像我预期的那样调用pthread_create。 为什么ldd如果没有使用它会在输出中显示pthread so文件? Open MPI不为每个节点使用单独的MPI线程来实现该功能吗?

2 个答案:

答案 0 :(得分:1)

MPI使用进程,而不是线程。所以不,Open MPI不会为每个节点使用单独的MPI线程。

答案 1 :(得分:0)

如果二进制文件未与--as-needed链接,则它将获取对链接命令行上给出的每个库的引用,而不管它是否实际需要。将-Wl,--as-needed传递给gcc,以便将选项传递给ld。