我正在构建一个使用libtiff的项目,最终似乎在运行时加载libtiff-6.dll。但是,它无法运行,并给出“Entry Point Not Found”错误消息:The procedure entry point jpeg12_read_raw_data could not be located in the dynamic link library libtiff-6.dll
我假设这是某种版本不匹配,但不能弄清楚哪个版本是错误的,以及如何控制在运行时加载哪些特定的dll版本。对我来说奇怪的是,jpeg12_read_raw_data似乎不是libtiff的一部分,但我认为它是libjpeg的一部分。
当我用dumpbin libtiff-6.dll /imports
命令检查libtiff-6.dll中的“导入”时,丢失的符号显示在那里:
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
我已经安装了libjpeg-8.dll,并将其与libtiff-6.dll放在同一个文件夹中,因此libtiff可能会加载正确的dll。但是,它仍然给出了错误。
有什么建议吗?
编辑:如果我用Dependency步行者查看libtiff-6.dll,它会显示jpeg12_read_raw_data作为一个损坏的依赖项(红色)。请参见随附的屏幕截图。
1条答案
按热度按时间nx7onnlm1#
这个问题通过链接libtiff-5.dll而不是libtiff-6.dll得到了部分解决。这是因为libtiff-5版本不使用那些缺失的12位jpeg函数,而libtiff-6需要它们。在这种情况下,我不需要支持12位图像文件。