gpt4 book ai didi

java - Netbeans(用于 c/c++ 的 MinGW 编译器)可以调用任意 C/C++ DLL(在 VS'05 中编译)吗?

转载 作者:太空宇宙 更新时间:2023-11-04 14:24:44 25 4
gpt4 key购买 nike

如上所述,在使用 JNI 调用任意提供的 DLL 中的类函数时,我遇到了“ undefined reference 错误 imp_ZN12classNameC1Ev”。我想知道 2 个不同编译器的名称修改不兼容是否是错误的来源?

准确的说,一个用MinGW(gcc/g++)编译的代码可以调用另一个用visualStudio编译的代码的类函数吗?

最佳答案

编译并不是问题所在。问题出在链接。如果您有 C++ 接口(interface),那么名称修改肯定会给您带来麻烦。每个编译器都有自己的名称修改方案。太糟糕了,他们可能也应该在 C++ 标准中对此进行标准化...

解决此问题的一种方法是围绕您拥有的 C++ Dll(必须使用 MSVC 编译)创建一个小型 C 包装器 API,并使用来自 Netbeans 的此 C API。 (最终为 c++ dll 中的类制作了一些仅包含 C++ header 的包装器,使其看起来像原始的 Api。这是两层包装,但我不知道是否可以用更简单的方法解决这个问题。

关于java - Netbeans(用于 c/c++ 的 MinGW 编译器)可以调用任意 C/C++ DLL(在 VS'05 中编译)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5012633/

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