Unsolved Integrating exiv2 with Qt
-
local/bin
? On Windows ? -
Ya ... mingw installation path!!
-
Just to rule out the obvious, can you copy the exiv2 .dll in the same folder as the application and check whether the application starts ?
-
Sorry for the late reply!!
Ya .. i have tried that already but gives the same error!
In the mean time I actually have tried many libraries and all are having same problem. So I guess there is a problem in either the build or the way of including the library. I will brief you exactly what I have done and the versions.
Build:
- I have successfully build the source code in the qt project folder using --prefix option with msys terminal with mingw compiler.
mingw32-g++.exe (GCC) 5.3.0
mingw32-gcc-5.3.0.exe (GCC) 5.3.0-
I am using Qt installed from qt-opensource-windows-x86-mingw492-5.6.1-1.exe
-
I have added mingw32-g++.exe (GCC) 5.3.0 as the compiler manually
-
I have added the external library (libexiv2.dll.a) in Qtcreator via Add Library external library and static mode.
-
I have also added to the PATH variable you have suggested.
The .pro reads this:
win32: LIBS += -L$$PWD/libs/exiv2build/lib/ -llibexiv2.dll INCLUDEPATH += $$PWD/libs/exiv2build/include DEPENDPATH += $$PWD/libs/exiv2build/include
It still gives me the error During startup program exited with code 0x0000c139.
Any suggestion on what might have gone wrong?
-
Do I understand understand correctly that you are trying to run application with libraries built with two different versions of MinGW ?
-
No.
I have right now changed it to the same compiler by changing the kit
Also, I have used the dependency walker on the dll file and have found problems in these dependencies:
I have attached the dependencywalker image for the same:
-
What image format is it ?
-
dependency walker
-
Can you provide an image that is in a more mainstream format ?
-
I can send you in text format but it might be difficult to decipher.
-
A screenshot of Dependency Walker's window might be simpler.
-
From a look at the text file. There's at least one architecture mismatch. Double check libexiv2, if I saw things correctly, it's a 64bit library and you are using a 32bit Qt.
-
Sorry for revoking the topic after a long time.
I am using both 32 bit (QT and mingw). When I load the dll in dependency walker, these are the missing dlls.
Kernel32.dll
MSVCRT.DLL
PSAPI.DLL
USER32.DLL
WS2_32.DLLI am unable to find these in the mingw bin folder also. So where can i get these dll's so that I can manually add them ?
-
Except MSVCRT.dll which comes with the vcredist package from Microsoft, the others are all system dlls that you should not distribute.
-
The system is 64 bit and mingw & QT are 32 bit. Is this creating the problem?
-
No, 64bit Windows can run both 32 and 64bits application.
You have to distribute the MinGW dependencies though.
Did you use
windeployqt
to prepare your application for distribution ? -
These are errors for the built exiv2 library dll file which I am using in a QT project. When I run the the project, it the program exits immediately but it compiles successfully. So I wanted to check if I am missing any of its dependencies to include in the qt project.
-
How did you build exiv2 ? With which compiler ?
-
via mingw 32 make and make install
-
The same you installed with Qt ?