我有一款硬件(X射线传感器),带有开发工具。但据我所知,这些工具是使用MSVC构建的。因此,我有一个.lib文件和一个.dll文件。如果我将这个lib文件包含到我的项目中(我正在使用Qt),并将dll文件放在exe文件夹中,并使用MSVC-Release选项编译,一切都可以运行。但是当我尝试使用mingw-Release选项编译时,它会失败。
指向“imp__ZN6IDcDrv6CreateEPKci”的未定义引用
指向“imp__ZN6IDcDrv14GetDeviceCountEv”的未定义引用
您能指出一些方法,让我可以使用mingw编译器来使用这些lib和dll文件吗?
PS: 我尝试了但失败了 impdef dclibsn.dll>dclib.def
dlltool -dllname dclibsn.dll --def dclib.def --output-lib libdclibsn.a
这是我的def文件的样子
请注意文件中的最后一个条目(Create.)。我正在尝试在程序中调用它,但是遇到了问题。
指向“imp__ZN6IDcDrv6CreateEPKci”的未定义引用
指向“imp__ZN6IDcDrv14GetDeviceCountEv”的未定义引用
您能指出一些方法,让我可以使用mingw编译器来使用这些lib和dll文件吗?
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
请注意文件中的最后一个条目(Create.)。我正在尝试在程序中调用它,但是遇到了问题。
(.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.