OpenSceneGraph找不到plugin的解决方案

52 篇文章 0 订阅

报错信息

  1. read error (Could not find plugin to read object from file “xxx”)
  2. InputStream::readImage(): Unable to find a plugin for xxx

解决方案

将osg的库路径加入环境变量Path。

错误的解决方案

将osg库拷贝到可执行程序同级目录。这个做法不能成功,原因未知。

附:OSG查找插件的方式

转自博客
因为osg的插件非常的庞大大概有121种,如果osg启动的时候就要预加载这么多的插件就会导致osg的启动速度非常的缓慢,所以osg采用了职责链的设计模式以加载尽量少的插件。我们就来介绍一个osg是如果查找适合目前功能的插件的。也就是Registry::LoadStatus Registry::loadLibrary(const std::string& fileName)

1、 osg会先搜索已经注册的插件列表_dlList,判断插件是否已经被加载到环境中,如果osg找到了符合次格式的插件,getLibraryItr(fileName)

2、 如果osg没有在_ dlList中找到所需插件,那么osg就会根据文件的名称来去plugins文件夹下寻找(osgDB_+此文件的后缀 )同名的插件,load到环境中。DynamicLibrary* DynamicLibrary::loadLibrary(const std::string& libraryName)

3、 如果还是没有找到相应的插件,就代表此文件I/O的操作再次失败,OSG将返回失败信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值