gpt4 book ai didi

linker - MPI 和 D : Linker Options

转载 作者:行者123 更新时间:2023-12-01 23:10:53 28 4
gpt4 key购买 nike

我正在尝试将 MPI 与 D 编程语言结合使用。 D 完全支持 C ABI,可以链接和调用任何 C 代码。我已经完成了显而易见的工作并将 MPI header 翻译为 D。然后我翻译了 a test program from Wikipedia到D。我用以下命令编译它:

dmd test.d -L-lmpistubs

当我刚刚运行 ./test 时它就起作用了,并打印:

0:我们有 1 个处理器

但是,当我使用 mpiexec -n 8 test 运行时,它什么也不打印。我的理解是,MPI 可执行文件需要一堆奇怪的链接选项,这就是为什么存在像 mpicc 这样的工具来自动化该过程。但是,如果我尝试在 D 中使用 MPI,这对我没有帮助。我认为这是因为我没有使用正确的链接器选项。有人可以告诉我 mpicc 的作用以及如何让 DMD 做同样的事情吗?

编辑:我使用mpicc -showme找到了答案。这显示了 mpicc 转发到 gcc 的命令。然而,我也意识到我的头文件翻译错了。下一个问题:How do to it right.

最佳答案

mpicc 是不同脚本甚至程序的通用名称。其中一些有诸如 -echo-show-compile-info-link-info 等选项-showme 或环境选项来显示实际调用的内容。

尝试检查它实际上是什么

 file -k `which mpicc`

如果是脚本,可以用sh、bash、perl、python编写。您可以轻松查看它并找到正确的选项。如果是程序,尝试运行

 strings `which mpicc`

有时字符串可以提取控制脚本工作的选项名称和/或环境变量。

此外,大多数 mpicc 检查 CC 环境变量来获取编译器的名称。您可以编写一个脚本或程序,仅打印其参数并将 CC env 设置为此程序。

关于linker - MPI 和 D : Linker Options,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944691/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com