libtiff库的问题,SOS求救!!!

yuqiyun 2015-12-09 06:52:32
小弟最近在做一个图像处理的项目,需要用到libtiff库的功能,奈何对这方面不是很熟悉,现在遇到了很麻烦的事情,还请熟悉这一块的大牛施以援手,小弟感激不尽。

是这样的,项目运行在windows环境下,需要用到libtiff的功能,但大家都知道,这个libtiff的编译就是一个很麻烦的事情,根据具体的需求,自己去结合zlib,jpeg等的lib来编译,灰常的麻烦!!!小弟于是在CSDN上下了两个别人编译好的libtiff的include和lib来直接用。其中一个我随便找个读tiff文件的测试程序都编译不过,链接错误:

error LNK2019: 无法解析的外部符号 __ltod3,该符号在函数 _TIFFReadDirEntryDouble 中被引用 F:\GIS\proland\Demo\Demo\libtiff.lib(tif_dirread.obj)
error LNK2001: 无法解析的外部符号 __ltod3 F:\GIS\proland\Demo\Demo\libtiff.lib(tif_aux.obj)
error LNK2019: 无法解析的外部符号 __ultod3,该符号在函数 _TIFFReadDirEntryDouble 中被引用 F:\GIS\proland\Demo\Demo\libtiff.lib(tif_dirread.obj)
error LNK2019: 无法解析的外部符号 __dtoui3,该符号在函数 _TIFFWriteDirectoryTagCheckedRational 中被引用 F:\GIS\proland\Demo\Demo\libtiff.lib(tif_dirwrite.obj)
error LNK2019: 无法解析的外部符号 __ftoui3,该符号在函数 _TIFFWriteDirectoryTagCheckedRationalArray 中被引用 F:\GIS\proland\Demo\Demo\libtiff.lib(tif_dirwrite.obj)



然后另外一个编译可以通过,但有一堆的链接警告信息我怎么都觉得不对:
1>libtiff.lib(fax3sm_winnt.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(fax3sm_winnt.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_close.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_close.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_codec.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_codec.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_compress.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_compress.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_dir.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_dir.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_dirinfo.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_dirinfo.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_dirread.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_dirread.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_dirwrite.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_dirwrite.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_dumpmode.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_dumpmode.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_error.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_error.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_fax3.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_fax3.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_flush.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_flush.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_luv.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_luv.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_lzw.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_lzw.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_next.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_next.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_open.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_open.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_packbits.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_packbits.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_predict.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_predict.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_read.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_read.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_strip.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_strip.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_swab.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_swab.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_thunder.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_thunder.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_tile.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_tile.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_warning.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_warning.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_win32.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_win32.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1>libtiff.lib(tif_write.obj) : warning LNK4099: 未找到 PDB“vc60.pdb”(使用“libtiff.lib(tif_write.obj)”或在“F:\GIS\Demo\Debug\vc60.pdb”中寻找);正在链接对象,如同没有调试信息一样
1> Demo.vcxproj -> F:\GIS\proland\Demo\Debug\Demo.exe
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========

编译倒是通过了。但运行就出问题了,我这边的测试程序执行TIFFReadEncodedStrip和TIFWriteEncodedStrip就会弹出小窗,显示Deflate compression support is not configured。


我就想请教一下这是什么原因,怎么解决,如果能提供可以用的库文件更是感激不尽
...全文
859 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
invisible_sky 2017-12-12
  • 打赏
  • 举报
回复
请问libtiff cmake 编译如何添加jpeg库
赵4老师 2015-12-10
  • 打赏
  • 举报
回复
My suspicion is that you are linking without one of the runtime libraries (libcmt.lib, libcmtd.lib, msvcrt.lib, msvcrtd.lib) or are attempting to link with an old version of a runtime library. Neither scenario is fully supported. I have verified that the functions in question, __dtol3 and __ltod3, are present in all four flavors of the runtime libraries.
yuqiyun 2015-12-10
  • 打赏
  • 举报
回复
引用 1 楼 paschen 的回复:
链接错误很可能人你没包含库目录,或者没导入库 下面的PDB未找到忽略这些消息
版主大大,那根据这些信息,我是缺哪些库呢,该怎么设置呢?zlib的库有的并且已经设置好了的,第一个出现什么“__ltod3,该符号在函数 _TIFFReadDirEntryDouble 中被引用”又是缺少什么库呢?
yuqiyun 2015-12-10
  • 打赏
  • 举报
回复
版主大大,那根据这些信息,我是缺哪些库呢,该怎么设置呢?zlib的库有的并且已经设置好了的,第一个出现什么“__ltod3,该符号在函数 _TIFFReadDirEntryDouble 中被引用”又是缺少什么库呢?
yuqiyun 2015-12-10
  • 打赏
  • 举报
回复
引用 6 楼 CharlesSimonyi 的回复:
你可以用CMake编译libtiff,超简单,两个步骤:
版主大大威武,可惜没早点看到你的回复,我是按网上的教程用nmake编译的,配置中打开zlib,就提供压缩算法的功能,deflate compression的问题就解决了
yuqiyun 2015-12-10
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
My suspicion is that you are linking without one of the runtime libraries (libcmt.lib, libcmtd.lib, msvcrt.lib, msvcrtd.lib) or are attempting to link with an old version of a runtime library. Neither scenario is fully supported. I have verified that the functions in question, __dtol3 and __ltod3, are present in all four flavors of the runtime libraries.
应该就是你说的这样,这种情况只有自己编译了,天晓得提供这个库文件的人用的什么版本的依赖库编译出来的
encoderlee 2015-12-10
  • 打赏
  • 举报
回复
你可以用CMake编译libtiff,超简单,两个步骤:



encoderlee 2015-12-10
  • 打赏
  • 举报
回复
windows上读写tiff图像文件的话,用GDI+最方便了,VC中还有个CImage类包装了GDI+的一些功能,用起来超方便。
paschen 2015-12-09
  • 打赏
  • 举报
回复
链接错误很可能人你没包含库目录,或者没导入库 下面的PDB未找到忽略这些消息

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧