gpt4 book ai didi

c++ - MinGW 链接 MSVC 的 dll 库问题( undefined reference )

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:07 33 4
gpt4 key购买 nike

这可能不是第一次出现这样的问题,但是......我知道有一些工具用于从 .dll(.def 生成器)获取导出的函数,但是(对我来说)没有用,因为编译器为函数生成的名称格式不同。有什么方法(可能是 .def 文件中的一些额外选项)告诉 mingw 编译器:_ZN6IDcDrv6CreateEPKci(MingW 的错位名称格式)= ?Create@IDcDrv@@SAPAVDcDrv@@PBDH@Z(MSVC 的错位名称格式)?? ??(重定向 lib.a 对 dll 的引用)我说的是封闭源代码的 dll,所以我不能为 mingw 编译 dll... 或开源库,它的构建需要花费大量时间和/或耐心。

最佳答案

没有。 MSVC 名称修改是专有的且未记录。

即使您可以在编译器之间获得一致的名称修改,也有大量其他小差异会使您的链接代码在各种奇怪的地方(类布局、函数调用等)崩溃。

如果需要互操作性,写一个C接口(interface)。 32 位 MinGW(-w64) GCC 甚至会链接到 32 位 MSVC C 库,反之亦然(如果您包含必要的编译器库,如 libgcc 或 MSVC 默认添加到其代码生成中的安全检查 cookie thingie 库)。

关于c++ - MinGW 链接 MSVC 的 dll 库问题( undefined reference ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16495591/

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