Hello dear list readers,
This topic is a whole new one, this is on purpose, and i'd like to solve this
in parallel with the other one (Delay-loading my libraries).
In this one, it is more about loading third-party DLLs directly in my projects.
The DLLs i would like to use from my project (And i'm not even trying to
delay-load them, for now) are from various scanner constructors (Canon, Epson,
Panini), and i have a set of 5 DLLs with only a .lib for some of them:
- On the 6 i have, i ported the code to LoadLibrary / GetProcAddress etc on 3
of them, so i only need to link against the remaining 3.
- 2 of those are likely to export the same functions... This was a huge bummer,
as i have no idea how to switch between one or another. So i changed all the
code from using direct function names to code using GetProcAddress and friends.
So now, the binary doesn't have to link against those 2 neither.
For the remaining one (Which is the VisionAPI from Panini), i am kind of stuck.
I'm trying to link directly against the vendor DLL, but i get a lot of linker
errors (See the end of this eMail).
So now, i believe i won't be able to link against the DLL directly as suggested
by another user of mingw list.
What do you recommend in such scenario, keeping in mind that i will need to
delay load the library? i would say: convert all the code to use LoadLibrary /
GetProcAddress and friends, but specifically for this library it is quite a
huge amount of work... Which i would like to avoid if possible.
g++ -mthreads -shared
-Wl,--out-implib,c:\Home\Administrator\Documents\PQRRS\PQRRS\Debug\libSCLibrary.a
-o ..\..\PQRRS\Debug\SCLibrary.dll object_script.SCLibrary.Debug
-L"c:\QtSdk\Desktop\Qt\4.8.1\mingw-w64\lib"
-LC:/Home/Administrator/Documents/PQRRS/PQRRS/Debug -lRELibrary
-LC:/Home/Administrator/Documents/PQRRS/PQRRS/SCLibrary/ThirdParty/win32/lib
-lVisionAPI -lQtGuid4 -lQtCored4
Creating library file:
c:\Home\Administrator\Documents\PQRRS\PQRRS\Debug\libSCLibrary.a
mingw32-make.exe[2]: Leaving directory
`C:/Home/Administrator/Documents/PQRRS/Debug/SCLibrary'
mingw32-make.exe[1]: Leaving directory
`C:/Home/Administrator/Documents/PQRRS/Debug/SCLibrary'
./debug\PaniniIDealController.o: In function `~PaniniIDealController':
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:46:
undefined reference to `_imp___Z8ShutDownm@4'
./debug\PaniniIDealController.o: In function
`ZNK2SC21PaniniIDealController11deviceStateEv':
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:56:
undefined reference to `_imp___Z14GetDeviceStatemPm@8'
./debug\PaniniIDealController.o: In function
`ZN2SC21PaniniIDealController12doInitializeEv':
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:115:
undefined reference to `_imp___Z19VApiSetDeviceEnginem@4'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:116:
undefined reference to `_imp___Z7StartUpP6HWND__j@8'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:125:
undefined reference to `_imp___Z16ChangeParametersm@4'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:133:
undefined reference to `_imp___Z6OnLinem@4'
./debug\PaniniIDealController.o: In function
`ZN2SC21PaniniIDealController11doConfigureERKNS_6ConfigE':
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:145:
undefined reference to `_imp___Z16ChangeParametersm@4'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:147:
undefined reference to `_imp___Z14GetDeviceErrormPm@8'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:229:
undefined reference to `_imp___Z18SetImageAdjustmentmiii@16'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:232:
undefined reference to `_imp___Z19SetDeviceParametersm17_DeviceParameters@524'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:234:
undefined reference to `_imp___Z14GetDeviceErrormPm@8'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:241:
undefined reference to `_imp___Z6OnLinem@4'
./debug\PaniniIDealController.o: In function
`ZN2SC21PaniniIDealController17doStartProcessingEv':
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:261:
undefined reference to `_imp___Z6OnLinem@4'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:273:
undefined reference to `_imp___Z12StartFeedingm@4'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:275:
undefined reference to `_imp___Z14GetDeviceErrormPm@8'
./debug\PaniniIDealController.o: In function
`ZN2SC21PaniniIDealController16doStopProcessingEv':
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:286:
undefined reference to `_imp___Z11StopFeedingm@4'
./debug\PaniniIDealController.o: In function
`ZN2SC21PaniniIDealController13onDeviceEventEjl':
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:314:
undefined reference to `_imp___Z8ShutDownm@4'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:323:
undefined reference to `_imp___Z6OnLinem@4'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:333:
undefined reference to `_imp___Z11StopFeedingm@4'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:364:
undefined reference to `_imp___Z14GetOCRCodelinemPhPcmii@24'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:367:
undefined reference to `_imp___Z12VApiGetErrorv@0'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:369:
undefined reference to `_imp___Z16FreeImagesBufferP13_ImagesStruct@4'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:376:
undefined reference to `_imp___Z15GetMicrCodelinemPcm@12'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:386:
undefined reference to `_imp___Z17GetDocumentLengthmmPm@12'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:390:
undefined reference to `_imp___Z9SetPocketmmh@12'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:392:
undefined reference to `_imp___Z14GetDeviceErrormPm@8'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:404:
undefined reference to `_imp___Z14EnableFrankingmmm@12'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:406:
undefined reference to `_imp___Z14GetDeviceErrormPm@8'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:419:
undefined reference to `_imp___Z16FreeImagesBufferP13_ImagesStruct@4'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:442:
undefined reference to `_imp___Z14GetDeviceErrormPm@8'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:469:
undefined reference to `_imp___Z14GetSorterErrormPm@8'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:491:
undefined reference to `_imp___Z9FreeTrackmh@8'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:498:
undefined reference to `_imp___Z9FreeTrackmh@8'
C:\Home\Administrator\Documents\PQRRS\Debug\SCLibrary/../../PQRRS/SCLibrary/src/Controllers/PaniniIDealController.cpp:509:
undefined reference to `_imp___Z12StartFeedingm@4'
ETC ETC ETC ETC
collect2: ld returned 1 exit status
mingw32-make.exe[2]: *** [..\..\PQRRS\Debug\SCLibrary.dll] Error 1
mingw32-make.exe[1]: *** [debug] Error 2
mingw32-make.exe: *** [sub-SCLibrary-make_default-ordered] Error 2
15:22:50: The process "C:\MinGW\mingw-w64\bin\mingw32-make.exe" exited with
code 2.
Error while building project Recognition Suite (target: Desktop)
When executing build step 'Make'
------------------------------------------------------------------------------
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public