Reputation: 161
I am buiding a project that uses libtiff and eventually seems to load libtiff-6.dll at run time. However, it fails to run giving "Entry Point Not Found" error with the message:
The procedure entry point jpeg12_read_raw_data could not be located in the dynamic link library libtiff-6.dll
I assume this is some kind of version mismatch, but can't figure out which versios are wrong and how to control what specific dll versions are loaded at run time. What is strange for me is that jpeg12_read_raw_data doesn't appear to be part of libtiff, but I would assume it is a part of libjpeg.
When I check the "imports" in libtiff-6.dll with command dumpbin libtiff-6.dll /imports
, the missing symbol is shown there:
libjpeg-8.dll
276A2E6A0 Import Address Table
276A2E178 Import Name Table
0 time date stamp
0 Index of first forwarder reference
7F jpeg12_read_raw_data
I have libjpeg-8.dll installed and located into the same folder as the libtiff-6.dll, so the libtiff probably loads that correct dll. But still, it gives the error.
Any suggestions for the solution?
EDIT:
If I look at the libtiff-6.dll with Dependency Walker, it shows jpeg12_read_raw_data as a broken dependency (red). See the attached screenshot.
Upvotes: 0
Views: 326
Reputation: 161
The problem was partially solved by linking libtiff-5.dll instead of libtiff-6.dll. This is because libtiff-5 version does not use those missing 12-bit jpeg functions, whereas libtiff-6 needs them. In this case, I don't need support for 12-bit image files.
Upvotes: 0