gpt4 book ai didi

d - 我可以使用什么编译器将 C++ 与 D 链接?

转载 作者:行者123 更新时间:2023-12-04 10:27:42 25 4
gpt4 key购买 nike

我想创建一个混合使用 C++ 和 D 的程序,并且我希望能够将其作为单个项目进行处理。

我的理解是我可以使用一些D编译器输出*.obj文件,然后我可以用一些C++编译器做同样的事情,然后将所有*.obj文件链接到一个二进制文件中,这是正确的吗?

如果这是正确的,我可以将任何 C++ 编译器与任何 D 编译器一起使用吗?还是我仅限于某些组合,例如 DMD-DMC、LDC-Clang 和 GDC-GCC?

我使用哪个链接器?

我使用哪个标准库?

最佳答案

理论上,您可以混合编译器,但在实践中,您有时会遇到目标文件格式和标准库混合问题,尤其是在 32 位 Windows 上。在那里很难,但在其他地方也不会太糟糕,因为大多数事情都是基于事实上的标准,如 MSVC 和 gcc。

Win32:将 dmc++(数字 mars 编译器和 C 运行时)与 dmd 或 g++ 和 gdc 一起使用。可以完成其他组合,但很麻烦。跨编译器系列在 Win32 中混合代码的最佳方法是使用 C 或 COM api 构建一个 DLL,并从 D 使用它。

Win64:由于 dmd 使用 64 位 Microsoft 格式和 C 库,因此将 dmd 与 Visual C++ 代码混合应该不会有什么问题。我不确定带有 dmd 的 Windows64 上的 g++。

大多数其他平台,包括 Linux:dmd 与 g++ 配合良好,gdc + gcc 也是如此。我不确定 ldc 和 g++ 是否兼容,但 ldc 也应该可以与任何平台上的其他基于 LLVM 的编译器一起正常工作。

关于d - 我可以使用什么编译器将 C++ 与 D 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27448555/

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