gpt4 book ai didi

c++ - Mingw 的处理/导出问题

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

我正在 Windows 下使用 Netbeans 和 MinGW 开发一个共享的 C++ DLL。

我的第一个问题是:MinGW 和 Microsoft Visual C++ 之间的重整会有所不同吗?我读到 mangling 是特定于编译器的——是真的吗?我需要使用 MinGW 获得与 MVC++ 相同的处理,这是否可能?

我发现,使用 Dependency Walker,导出的函数也被视为 C(在我的代码中它们没有导出为 C)。这是否取决于 DepWalker 的限制或出于某种原因 MinGW 正在将我的库导出为 C? (我验证了使用“export C”我不再看到重整,而没有,我看到名称重整(这与我基于 MVC++ 的预期不同)但我仍然看到“C”图标而不是“C++ ".

链接命令如下:

g++.exe -static-libgcc -static-libstdc++ -shared -o my.dll -s 1.o 2.o ... n.o other.dll -static

提前致谢并致以最诚挚的问候。

最佳答案

是的,名称修改是特定于编译器的。它甚至可以在同一编译器的不同版本之间发生变化。

您不应该对 mangling 有任何期望,应该将其视为一个黑盒子 - 永远不要依赖它是相同的还是不同的。

如果您需要编译器间链接,请使用 extern "C"

关于c++ - Mingw 的处理/导出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5064018/

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