使用 LibTiff 编译 Ogre - 未定义的参考

Posted

技术标签:

【中文标题】使用 LibTiff 编译 Ogre - 未定义的参考【英文标题】:Compiling Ogre with LibTiff - undefined reference 【发布时间】:2014-10-03 08:02:09 【问题描述】:

我需要将 ogre 编译为带有 RoS 的凉亭的依赖项。在链接它的过程中,我收到以下错误:

Linking CXX executable ../../bin/SampleBrowser
/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib/libfreeimage.so: undefined reference to `TIFFReadEncodedStrip@LIBTIFF_4.0'
/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib/libfreeimage.so: undefined reference to `TIFFReadEXIFDirectory@LIBTIFF_4.0'
...

这些错误似乎是由于缺少 libtiff5 造成的。即使在安装了 libtiff5、libtiff5-dev 和 libtiff4、libtiff4-dev 之后,它也不会被链接器拾取。我通过源代码安装了 libtiff 4.0.3,但我认为我的系统现在非常混乱,以至于它总是使用错误的库版本。

ls /usr/lib/x86_64-linux-gnu | grep libtiff

给我:

libtiff.a
libtiff.la
libtiff.so
libtiff.so.4
libtiff.so.4.3.6
libtiff.so.5
libtiff.so.5.2.0
libtiffxx.a
libtiffxx.la
libtiffxx.so
libtiffxx.so.0
libtiffxx.so.0.0.10
libtiffxx.so.5
libtiffxx.so.5.2.0

运行 debian jessie x64。

【问题讨论】:

【参考方案1】:

官方的 Ogre3D 依赖项(可以在 here 找到)目前基于 FreeImage 3.15.3,内部基于 LibTIFF 4.0.1。 p>

使用这些版本可能会解决您的问题。

【讨论】:

以上是关于使用 LibTiff 编译 Ogre - 未定义的参考的主要内容,如果未能解决你的问题,请参考以下文章

为 iOS 项目编译 libtiff 以包含 64 位架构

Ogre1.6.5 编译链接错误之FreeImage

imagemagick 识别给出“dyld:未加载库:/usr/local/lib/libtiff.3.dylib”

转载OGRE 2.1 Windows 编译

Ogre 1.7.0,VS2005编译全过程傻瓜式教程

刚刚在linux下编译好了ogre 3D渲染引擎,怎样将它移植到Android中啊。