0

我有一个 windows dll(主应用程序直接加载此 windows dll)链接到另外 2 个 dll,这些 dll 是通过使用 mingw32 交叉编译获得的。

我在这个链接中遇到了一个奇怪的问题。

假设我在第一个交叉编译的 dll funcA_firstdll() 和 funcB_firstdll() 中有 2 个函数,同样我在第二个交叉编译的 dll funcC_secdll() 和 funcD_secdll() 中有两个函数。与 Windows 主 dll 链接时,我没有收到任何链接器错误,但没有加载 dll。

因此,如果我使用dependency walker检查windows dll的依赖关系,我会看到第一个和第二个交叉编译的dll都是红色的。

当我单击第一个交叉编译的 dll 时,我看到该 dll(funcA_firstdll() 和 funcB_firstdll() )中存在的函数为绿色,第二个交叉 dll(funcC_secdll() 和 funcD_secdll()) 为红色。同样,当我单击第二个交叉编译的 dll 时,我看到该 dll 中存在的函数(funcC_secdll() 和 funcD_secdll())为绿色,第一个交叉 dll 为红色。

我无法理解为什么它们无法相互链接。是否有任何不同的方式来链接交叉编译的 dll。

任何帮助表示赞赏。

问候,

技术。

4

1 回答 1

0

自己解决了。

这实际上是一个问题,由 mingw 生成的代理库没有被 MSVC 正确解释。

所以也必须生成def文件。按照本教程

http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs

于 2013-10-04T11:39:00.490 回答