Joe*_*lav 4 c++ mingw export name-mangling visual-c++
我正在Windows下使用Netbeans和MinGW处理共享的C++ DLL.
我的第一个问题是:MinGW和Microsoft Visual C++之间会不一致?我读到mangling是编译器特定的 - 是真的吗?我需要使用MinGW获得与MVC++相同的修改,这是否可能?
我发现,使用Dependency Walker,导出的函数也被视为C(在我的代码中它们不会导出为C).这是否取决于DepWalker的限制或由于某种原因MinGW使我的库导出为C?(我确认使用"导出C"我不再看到错误了,而没有,我看到名称错误(这与我期望的基于MVC++的不同)但我仍然看到"C"图标而不是"C++" ".
这是链接命令:
g++.exe -static-libgcc -static-libstdc++ -shared -o my.dll -s 1.o 2.o ... n.o other.dll -static
提前感谢和最好的问候.
是的,名称修改是特定于编译器的.它甚至可以在同一编译器的版本之间进行更改.
你永远不应该期待任何关于破损的事情,并且应该将它视为一个黑盒子 - 永远不要依赖它是相同或不同的.
如果需要使用编译器间链接extern "C".