我正在尝试将 MPI 与 D 编程语言一起使用。D完全支持C ABI,可以链接和调用任何C代码。我已经完成了显而易见的工作并将 MPI 标头翻译为 D。然后我将一个测试程序从 Wikipedia翻译为 D。我使用以下命令对其进行了编译:
dmd test.d -L-lmpistubs
它在我运行时有效./test
,并打印:
0: We have 1 processors
但是,当我运行时mpiexec -n 8 test
,它什么也不打印。我的理解是 MPI 可执行文件需要一堆奇怪的链接选项,这就是为什么mpicc
存在像这样的工具来自动化该过程的原因。但是,如果我尝试在 D 中使用 MPI,这对我没有帮助。我认为这是因为我没有使用正确的链接器选项。有人可以告诉我做什么mpicc
以及如何让 DMD 做同样的事情吗?
编辑:我使用mpicc -showme
. 这显示了mpicc
转发到的命令gcc
。但是,我也意识到我做的头文件翻译错误。下一个问题: 如何做到正确。