【发布时间】:2011-08-15 10:59:07
【问题描述】:
我有一个带有开发工具的硬件(X 射线传感器)。但是 afaiu 这些是内置在 msvc 中的。所以我有一个 .lib 文件和 .dll 文件。如果我将此 lib 文件包含到我的项目中(我正在使用 qt),并将 dll 文件放入 exe 文件夹并使用 MSVC-Release 选项进行编译,则一切正常。但是当我尝试使用 mingw-Release 选项进行编译时。它失败了。
对 `imp__ZN6IDcDrv6CreateEPKci' 的未定义引用
对 `imp__ZN6IDcDrv14GetDeviceCountEv' 的未定义引用
你能指出一些出路,以便我可以使用这些库。和 dll 文件使用 mingw 编译器
ps: 我试过但失败了 impdef dclibsn.dll>dclib.def
dlltool -dllname dclibsn.dll --def dclib.def --output-lib libdclibsn.a
这就是我的 def 文件的样子
LIBRARY "dclibsn.dll"
EXPORTS
??0DcDrv@@QAE@ABV0@@Z
??0DcDrv@@QAE@V?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z
??0IDcDrv@@QAE@ABV0@@Z
??0IDcDrv@@QAE@XZ
??1DcDrv@@QAE@XZ
??4DcDrv@@QAEAAV0@ABV0@@Z
??4IDcDrv@@QAEAAV0@ABV0@@Z
?CaptureImage@DcDrv@@AAE_NHHHK_NHH@Z
?CloseUsbDevice@DcDrv@@AAE_NXZ
?ColumnDefectComp@DcDrv@@AAEGPBGH@Z
?CompensationImage@DcDrv@@AAEXPAGQAEHH@Z
?Create@IDcDrv@@SAPAVDcDrv@@PBDH@Z
注意这个文件中的最后一个条目(创建。)我试图在程序中调用它,我得到了
(.text+0x1ad): undefined reference to `_imp___ZN6IDcDrv6CreateEPKci'
如果我替换线 ?Create@IDcDrv@@SAPAVDcDrv@@PBDH@Z
使用 imp__ZN6IDcDrv6CreateEPKci 编译,但给出错误。
The procedure entry point _ZN6IDcDrv6CreateEPKci could not be located in the dynamic link library dclibsn.DLL.
【问题讨论】:
标签: visual-c++ dll mingw