gpt4 book ai didi

c++ - MS 与非 MS C++ 编译器兼容性

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:58 24 4
gpt4 key购买 nike

想在 Windows 上使用 MinGW 作为 VC++ 的替代品,但担心兼容性问题。我考虑的是 Windows 上的行为和性能(MinGW 编译的 EXE 可能会出现任何问题)。此外,在调用 Windows API、第三方 DLL、生成和使用兼容的静态库以及将同一应用程序的各个部分与两个编译器混合时遇到的其他问题。

最佳答案

首先,MinGW不是一个编译器,而是一个环境,它与gcc捆绑在一起。

如果你想用gcc编译代码,让它调用Windows API,没关系,因为它是C;但对于由 MSVC 生成的 C++ DLL,您可能会有一个刺耳的唤醒调用。

主要问题是,在 C++ 中,每个编译器都有自己的名称修改(或更普遍的 ABI)和自己的标准库。您不能混合使用两个不同的 ABI 或两个不同的标准库。故事结束。

Clang 具有特定的 MSVC 兼容模式,允许它接受 MSVC 接受的代码,发出与用 MSVC 编译的代码二进制兼容的代码。事实上,它甚至是 officially supported in Visual Studio .

显然,您也可以简单地在 C 中进行跨 DLL 通信来规避大多数问题。

编辑:Kerrek 的澄清。

关于c++ - MS 与非 MS C++ 编译器兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7119588/

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