本文共 1051 字,大约阅读时间需要 3 分钟。
因升级需要,我将工程环境从 Visual Studio 2010 和 OSG 3.0.1 转升至 Visual Studio 2015 和 OSG 3.6.3进行了重新编译,编译平台依然设置为 Windows 32-bit 系统。在新版本平台上,编译过程中出现了以下错误:
fatal error C1083: 无法打开包括文件:“osgShadow/ShadowVolume”: No such file or directory
在初次尝试升级时,我是在 E 盘硬盘上对 OSG 进行编译的,因此我在 OSG 的编译模块中进行了查询。在目录 E:\OSG\OpenSceneGraph\include\osgShadow
文件夹中,发现并没有 ShadowVolume
模块。接着,我在网络上查找了 OSG 的 3.6.2 和 3.6.1 版本进行查询,但同样发现该模块并不存在。
为了进一步确认这一点,我还尝试了将 OSG 中的 osgshadow
实例在 Visual Studio 2015 中编译,结果发现即使没有 ShadowVolume
模块,仍然可以实现阴影效果。这让我怀疑,可能在 OSG 3.6.3 版本中,ShadowVolume
模块已经不再是必要的,因为该模块在最新版本中的存在性可能已经被废弃。
补充来自 osgshadow.cpp
的注释:
OSG_NOTICE << "Warning: ShadowVolume no longer supported."
基于上述分析,我决定在头文件中删除对 ShadowVolume
模块的引用,并重新编译。此方法用以绕过缺少模块的问题,最终编译过程完成后也没有再出现错误,项目能够正常运行。
通过这次经历,我体会到了一个教训:面对编译错误时,应首先全面分析错误产生的原因,而不应当急于更换工具或版本。在后续的尝试中,我分别测试了 OSG 的 3.4.0 和 3.0.3 版本,并且在 Visual Studio 2015 以及 Windows SDK 进行了重新安装编译,然而每次编译都伴随着不同程度的错误,事实上并未完全解决问题。只有在重新尝试升级到 3.6.3 版本并结合问题修正 suggestions 后,编译才能稳定进行,尽管仍然存在少量错误。
通过这一过程,我学会了谨慎分析问题,并结合多版本测试来找到最适合当前项目需求的配置,避免了盲目尝试带来的不必要的繁琐和误差。望未来能够将这种经验转化为更高效的问题解决策略。
转载地址:http://rgsxz.baihongyu.com/