【Ogre-windows】环境配置

前言

由于工程原因, 学习一下Ogre面向对象图形渲染开源引擎, 慢慢爬坑吧。首先还是环境的配置问题哎. 其实最重要的是要预先编译三方库, 虽然官方说可以自动编译, 但是在自己电脑上还是出现了无法解析外部符号之类的问题, 正常情况下我就认为是三方库的lib出现了问题, 最后额外编译三方库才得到了解决, 话不多说, 安装开始.

环境: windows10、VS2013、Ogre1.10

所需code:

官方网址: Ogre1.10(github)、三方库 、SDL2 、boost

【注】boost最好下载电脑所对应的VS版本, 我的电脑是VS2013, 所以下载boost_1_61_0-msvc-12.0-64.exe

百度网盘:

Ogre: 链接: https://pan.baidu.com/s/1TIPy-rndd-uBZJZynkvzrw 密码: uf5c

三方库: 链接:http://pan.baidu.com/s/1c1XCh0W 密码:db29

SDL2: 链接:http://pan.baidu.com/s/1qXAnaA4 密码:hegq

BOOST: 链接:http://pan.baidu.com/s/1pLMG7px 密码:q8a8

国际惯例, 参考博客:

OGRE 2.1 Windows 编译

官方manual

安装

三方库配置

  • 先安装boost, 一直下一步就行了, 我安装的位置是D:\Package\boost_1_61_0, 注意设置一下环境变量
    这里写图片描述
    再看看我安装后的目录有哪些文件

    这里写图片描述

  • 新建一个文件夹Ogre1.10放置三方库以及后续的编译好的程序, 将三方库解压进来, 并在D:\Package\Ogre1.10\cabalistic-ogredeps-a337c4874a15\src新建文件夹SDL2, 将下载的SDL2压缩包中的大约40个文件复制丢进来, 并在D:\Package\Ogre1.10\cabalistic-ogredeps-a337c4874a15新建一个build文件夹, 接下来打开cmake-GUI, 设置好相关路径
    这里写图片描述

    直接点击Configure, 截图一下我的结果

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    调试日志如下:

    The C compiler identification is MSVC 18.0.40629.0
    The CXX compiler identification is MSVC 18.0.40629.0
    Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe
    Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe -- works
    Detecting C compiler ABI info
    Detecting C compiler ABI info - done
    Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe
    Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe -- works
    Detecting CXX compiler ABI info
    Detecting CXX compiler ABI info - done
    Detecting CXX compile features
    Detecting CXX compile features - done
    Looking for DirectX...
    DirectX_PREFIX_PATH changed.
    Check size of void*
    Check size of void* - done
    Found DirectX: C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x86/d3d9.lib
    DX lib dir: C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x86
    DX lib dir: C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x86
    Check size of void*
    Check size of void* - done
    Configuring done

    虽然全是红色的, 但是再Configure一下就没了, 如果还有红色的, 那你就得好好核对一下我上面贴的一堆图了. 随后Generate一下, 就看到build文件夹下已经有完整的VS工程啦
    这里写图片描述

    然后打开OGREDEPS.sln, 对ALL_BUILD生成一次, 就发生问题了

    错误    944 error MSB6006: “cmd.exe”已退出,代码为 1。  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets  170 5   SDL2

    这时候就考察VS的调试功底了, 直接去输出窗口看具体位置:

    5>  Move SDL2 install files into the Release and Debug folders.
    5>  CMake Error at D:/Package/Ogre1.10/cabalistic-ogredeps-a337c4874a15/build/src/SDL2-prefix/src/SDL2-stamp/SDL2-MoveInstallFiles-Debug.cmake:16 (message):
    5>    Command failed: 1
    5>  
    5>     'C:/Program Files/CMake/bin/cmake.exe' '-Dmake=' '-Dconfig=Debug' '-P' 'D:/Package/Ogre1.10/cabalistic-ogredeps-a337c4874a15/build/src/SDL2-prefix/src/SDL2-stamp/SDL2-MoveInstallFiles-Debug-impl.cmake'
    5>  
    5>    See also
    5>  
    5>      D:/Package/Ogre1.10/cabalistic-ogredeps-a337c4874a15/build/src/SDL2-prefix/src/SDL2-stamp/SDL2-MoveInstallFiles-*.log
    5>  
    5>  
    5>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(170,5): error MSB6006: “cmd.exe”已退出,代码为 1

    很清晰地发现错误日志已经被丢到SDL2-MoveInstallFiles-*.log中, 去瞅一眼

    Error copying file "bin/SDL2.dll" to "bin/Debug/SDL2.dll".
    CMake Error at D:/Package/Ogre1.10/cabalistic-ogredeps-a337c4874a15/build/src/SDL2-prefix/src/SDL2-stamp/SDL2-MoveInstallFiles-Debug-impl.cmake:29 (message):
    Command failed (1):'C:/Program Files/CMake/bin/cmake.exe' '-E' 'copy' 'bin/SDL2.dll' 'bin/Debug/SDL2.dll'

    很多人看到这类英文错误就直接问人, 小兄弟啊, 遇到错误先认真看一遍, 至少先翻译一下也行啊. 嗯, 闲话不多说, 这个问题就是复制SDL2.dll的时候出问题了, 三方库的输出目录是D:\Package\Ogre1.10\cabalistic-ogredeps-a337c4874a15\build\ogredeps, 可以发现在bin下的确有SDL2d.dll躺着, 主要是由于我们编译的是Debug模式. 所以没找到SDL2.dll, 导致错误, 解决方法很简单, 切换Release模式重新编译, 或者手动把这个文件拷贝进去.建议两个都做一遍, 反正不冲突.

  • 最后对INSTALL生成一遍,一定要核对一下相关文件(VS工程中出现的那几个三方库)是否在ogredeps文件中, 主要有
    include: 相关头文件, 这个一般都存在
    lib: 相关lib库文件
    bin: 相关dll库文件
    如果不在, 直接针对每个项目右键打开文件资源管理器, 找到以后复制过来.

编译Ogre源程序

  • ogre-master解压到D:\Package\Ogre1.10中, 然后将刚才编译的三方库ogredeps放入到ogre-master中, 并更名为Dependencies, 在D:\Package\Ogre1.10下新建文件夹Ogre用于存储编译的Ogre, 在cmake-gui中设置路径
    这里写图片描述
    然后Configure, 调试信息太多了, 就不贴了, 第二次Configure出现错误

    send_errorD:/Package/Ogre1.10/Ogre/Dependencies/bin/debug/cg.dll did not exist, can't install!
    send_errorD:/Package/Ogre1.10/Ogre/Dependencies/bin/release/cg.dll did not exist, can't install!

    这个文件在刚才编译三方库的时候D:\Package\Ogre1.10\cabalistic-ogredeps-a337c4874a15\build\bin里面, 同时我们还发现另外两个dll: OIS.dllRemotery.dll, 保险起见都复制过去吧,两种模式DebugRelease, 重新Configure就没问题了, 调试日志如下

Configuring OGRE 1.10.10Search path: D:/Package/Ogre1.10/Ogre/Dependencies;D:/Package/Ogre1.10/ogre-master/Dependencies;D:/Package/Ogre1.10/Ogre/../Dependencies;D:/Package/Ogre1.10/ogre-master/../DependenciesLooking for ZZip...Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) Found ZZip: optimized;D:/Package/Ogre1.10/ogre-master/Dependencies/lib/Release/zziplib.lib;debug;D:/Package/Ogre1.10/ogre-master/Dependencies/lib/Debug/zziplib_d.libLooking for FreeImage...Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) Found FreeImage: optimized;D:/Package/Ogre1.10/ogre-master/Dependencies/lib/Release/FreeImage.lib;debug;D:/Package/Ogre1.10/ogre-master/Dependencies/lib/Debug/FreeImage_d.libLooking for FREETYPE...Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) CMAKE_PREFIX_PATH: D:/Package/Ogre1.10/Ogre/Dependencies;D:/Package/Ogre1.10/ogre-master/Dependencies;D:/Package/Ogre1.10/Ogre/../Dependencies;D:/Package/Ogre1.10/ogre-master/../DependenciesCMAKE_PREFIX_PATH: D:/Package/Ogre1.10/Ogre/Dependencies;D:/Package/Ogre1.10/ogre-master/Dependencies;D:/Package/Ogre1.10/Ogre/../Dependencies;D:/Package/Ogre1.10/ogre-master/../DependenciesFound FREETYPE: optimized;D:/Package/Ogre1.10/Ogre/Dependencies/lib/freetype.lib;debug;D:/Package/Ogre1.10/ogre-master/Dependencies/lib/Debug/freetype_d.libLooking for DirectX9...Found DirectX9: D:/Package/Microsoft DirectX SDK (June 2010)/Lib/x86/d3d9.libLooking for DirectX11...Found DirectX11: d3d11.lib;dxgi.lib;dxguid.libLooking for Cg...Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) Found Cg: D:/Package/Ogre1.10/ogre-master/Dependencies/lib/Release/cg.libLooking for POCO...Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) Could not locate POCOLooking for TBB...Could not locate TBBLooking for GLSL_Optimizer...Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) Could not locate GLSL_OptimizerLooking for HLSL2GLSL...Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) Could not locate HLSL2GLSLCould NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) Looking for Softimage...Could not locate Softimage------------------------------------------------------------------------------- The following external packages were located on your system.-- This installation will have the extra features provided by these packages.+ zlib+ zziplib+ freeimage+ freetype+ OpenGL+ OpenGL 3++ OpenGL ES 1.x+ OpenGL ES 2.x+ OpenGL ES 3.x+ DirectX9+ DirectX11+ cg+ Python+ SDL2------------------------------------------------------------------------------- The following OPTIONAL packages could NOT be located on your system.-- Consider installing them to enable more features from this software.+ boost: Boost (general) <http://boost.org>+ boost-thread: Used for threading support <http://boost.org>+ POCO: POCO framework <http://pocoproject.org/>+ tbb: Threading Building Blocks <http://www.threadingbuildingblocks.org/>+ GLSL Optimizer: GLSL Optimizer <http://github.com/aras-p/glsl-optimizer/>+ HLSL2GLSL: HLSL2GLSL <http://hlsl2glslfork.googlecode.com/>+ OpenEXR: Load High dynamic range images <http://www.openexr.com/>+ Doxygen: Tool for building API documentation <http://doxygen.org>+ Softimage: Softimage SDK needed for building XSIExporter <FALSE>-----------------------------------------------------------------------------Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR) Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR) ----------------------------------------------------------------------------FEATURE SUMMARY----------------------------------------------------------------------------Building components:+ Bites [BETA]+ HLMS [BETA]+ MeshLodGenerator+ Overlay+ Paging+ Property [DEPRECATED]+ Python [BETA]+ Java/ JNI [BETA]+ RTShader System+ RTShader System Core Shaders+ RTShader System Extensions Shaders+ Terrain+ VolumeBuilding plugins:+ BSP scene manager+ Cg program manager+ Octree scene manager+ Portal connected zone scene manager+ Particle FXBuilding rendersystems:+ Direct3D 9+ Direct3D 11+ OpenGL+ OpenGL 3+Building executables:+ Samples+ ToolsBuilding core features:+ Mesh Lod+ DDS image codec (.dds)+ ETC image codec (.pkm, .ktx) + FreeImage codec (generic)+ ZIP archivesBuild type:                      sharedUse C++11 std library:           OFFStore child nodes as:            map [DEPRECATED]Thread safety:                   noneResourceManager behaviour:       legacy [DEPRECATED]Use double precision:            disabledNodes inherit transform:         disabledAssert mode:                     release exceptionsAllocator type:                  standardSTL containers use allocator:    disabledStrings use allocator:           disabledMemory tracker (debug):          disabledMemory tracker (release):        disabled----------------------------------------------------------------------------Configuring doneGenerating done

Generate一下, 生成VS2013的工程文件, 可以在D:\Package\Ogre1.10\Ogre中找到.
【注】上述过程也可以在Cmake-GUI中不勾选OGRE_BUILD_DEPENDENCIES,并且设置OGRE_DEPENDENCIES_DIR为你的三方库目录, 好像更快一些
- 编译OGRE.sln, 先ALL_BUILD一下, 时间挺久的, 要盯着错误列表, 一旦出现错误, 就直接取消生成解决错误吧. 个人觉得很多人会出现外部符号无法解析问题, 一定是由于lib文件没折腾好引起的. 重新仔细核对上述步骤, 尤其是核对dll和lib是否折腾对.
【注】这里贴一下我编译好的三方库,便于大家核对 :链接:http://pan.baidu.com/s/1boDvokv 密码:lkap
然后就可以INSTALL啦, 这个就是生成我们后续开发需要引用的Ogre各种文件, 存在于D:\Package\Ogre1.10\Ogre\sdk目录下, 以后开发就只需要它应该就可以了.

  • 最后可以通过VS运行程序, 也可以通过D:\Package\Ogre1.10\Ogre\bin\debug\SampleBrowser_d.exe运行程序
    这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246626.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【theano-windows】学习笔记十六——深度信念网络DBN

前言 前面学习了受限玻尔兹曼机(RBM)的理论和搭建方法, 如果稍微了解过的人, 肯定知道利用RBM可以堆叠构成深度信念网络(deep belief network, DBN)和深度玻尔兹曼机(deep Boltzmann machine), 这里就先学习一下DBN. 国际惯例, 参考博文: Deep Belief Networks A fast lear…

【Ogre-windows】实例配置

前言 折腾了好久才搞定教程实例, 主要是因为上一篇博客安装的具体版本是Ogre1.10.9, 而官方的Ogre Wiki Tutorial Framework没有指定具体版本, 如果单纯下载Ogre Wiki Tutorial Framework 1.10 - (Windows line endings, updated 2015-10-15) 运行, 基本会血崩. 所以, 在经过仔…

【Ogre-windows】旋转矩阵及位置解析

前言 这篇博客主要针对三种问题 如何创建动画帧如何获取全局位置如何计算全局旋转矩阵 仿真环境为VS2013Ogre1.10.9与matlab验证 创建动画帧 这里只做一个简单的实验: 将自带的人物模型Jaiqua的run运动给新创建的运动myrun中并播放&#xff0c;直接贴代码了 void JaiQua:…

BP推导——续

前言 之前有证明过一次人工神经网络——【BP】反向传播算法证明 &#xff0c;但是回头看的时候&#xff0c;有很多地方非常不严谨&#xff0c;特此拿出来再单独证明一次BP&#xff0c;并严格保证其严谨性。如果想看看粗略的证明&#xff0c;可以去看我之前的博客&#xff0c;毕…

matlab学习——强连通分量

前言 最近motion graph相关实验&#xff0c;发现实现运动过渡需要构建运动图&#xff0c;而为了避免运动过渡陷入死胡同&#xff0c;需要对图结构进行裁剪&#xff0c;方法就是计算图模型的极大强联通分量&#xff0c;但是自己懒得去实现&#xff0c;所以就去搜了一下matlab中…

【音频处理】离散傅里叶变换

前言 最近复现音乐驱动舞蹈的文章《Dancing-to-Music Character Animation》&#xff0c;用到了与傅里叶变换很相似的称为常Q变换的方法去分割音乐&#xff0c;所以对傅里叶变换做了一个小了解&#xff0c;本文不深入各种乱糟糟的理论&#xff0c;比如什么蝶形算法啥的&#x…

【音频处理】短时傅里叶变换

前言 上一篇博客讲了离散傅里叶变换&#xff0c;里面的实例是对整个信号进行计算&#xff0c;虽然理论上有N点傅里叶变换(本博客就不区分FFT和DFT了&#xff0c;因为它俩就是一个东东&#xff0c;只不过复杂度不同)&#xff0c;但是我个人理解是这个N点是信号前面连续的N个数值…

【theano-windows】学习笔记十九——循环神经网络

前言 前面已经介绍了RBM和CNN了&#xff0c;就剩最后一个RNN了&#xff0c;抽了一天时间简单看了一下原理&#xff0c;但是没细推RNN的参数更新算法BPTT&#xff0c;全名是Backpropagation Through Time。 【注】严谨来说RNN有两个称呼&#xff1a;①结构上递归的recursive n…

【theano-windows】学习笔记二十——LSTM理论及实现

前言 上一篇学习了RNN&#xff0c;也知道了在沿着时间线对上下文权重求梯度的时候&#xff0c;可能会导致梯度消失或者梯度爆炸&#xff0c;然后我们就得学习一波比较常见的优化方法之LSTM 国际惯例&#xff0c;参考网址&#xff1a; LSTM Networks for Sentiment Analysis …

刚体运动学——欧拉角、四元数、旋转矩阵

前言 刚体运动旋转一般用&#xff1a;欧拉角、四元数、轴角对等表示&#xff0c;在对某个坐标旋转的时候&#xff0c;只需将欧拉角或四元数转换为旋转矩阵&#xff0c;并与原始坐标相乘&#xff0c;便可得到旋转以后的坐标。这里主要看看欧拉角、四元数和旋转矩阵。 国际惯例…

刚体运动学-四元数插值

前言 之前对写了一篇关于刚体运动学相关知识博客&#xff1a;刚体运动学——欧拉角、四元数、旋转矩阵&#xff0c;本篇博客就举例来说明&#xff0c;如何在运动捕捉数据中进行四元数插值。 国际惯例&#xff0c;参考博客&#xff1a; 探讨&#xff1a;向量&#xff08;方向…

【TensorFlow-windows】学习笔记一——基础理解

前言 因为Theano已经停止更新了&#xff0c;所以在前面学完Theano搭建RBM,CNN,RNN相关结构以后&#xff0c;还是得选择一个主流框架的&#xff0c;由于我自身的学习最终是向强化学习靠近&#xff0c;可能用到的仿真环境是openai gym&#xff0c;所以选择了继续学习TensorFlow&…

【TensorFlow-windows】学习笔记二——低级API

前言 上一篇博客初步了解了tensorflow中建立机器学习模型的方法&#xff1a;可以使用eager execution和graph execution两种模式&#xff0c;可以使用高级API estimator中已经封装好的模型&#xff0c;也可以自己创建estimator&#xff0c;更重要的是我们也可以使用低级API自行…

【TensorFlow-windows】学习笔记五——自编码器

前言 上一篇博客介绍的是构建简单的CNN去识别手写数字&#xff0c;这一篇博客折腾一下自编码&#xff0c;理论很简单&#xff0c;就是实现对输入数据的重构&#xff0c;具体理论可以看我前面的【theano-windows】学习笔记十三——去噪自编码器 国际惯例&#xff0c;参考博客&…

【TensorFlow-windows】学习笔记六——变分自编码器

#前言 对理论没兴趣的直接看代码吧&#xff0c;理论一堆&#xff0c;而且还有点复杂&#xff0c;我自己的描述也不一定准确&#xff0c;但是代码就两三句话搞定了。 国际惯例&#xff0c;参考博文 论文&#xff1a;Tutorial on Variational Autoencoders 【干货】一文读懂…

【TensorFlow-windows】学习笔记七——生成对抗网络

前言 既然学习了变分自编码(VAE)&#xff0c;那也必须来一波生成对抗网络(GAN)。 国际惯例&#xff0c;参考网址&#xff1a; 论文: Generative Adversarial Nets PPT:Generative Adversarial Networks (GANs) Generative Adversarial Nets in TensorFlow GAN原理学习笔记…

Openpose——windows编译(炒鸡简单)

前言 最近准备看看rtpose的代码&#xff0c;发现已经由openpose这个项目维护着了&#xff0c;由于经常在windows下调试代码&#xff0c;所以尝试了一下如何在windows下编译openpose源码&#xff0c;整体来说非常简单的。 国际惯例&#xff0c;参考博客&#xff1a; [OpenPos…

强化学习——Qlearning

前言 在控制决策领域里面强化学习还是占很重比例的&#xff0c;最近出了几篇角色控制的论文需要研究&#xff0c;其中部分涉及到强化学习&#xff0c;都有开源&#xff0c;有兴趣可以点开看看&#xff1a; A Deep Learning Framework For Character Motion Synthesis and Edit…

【TensorFlow-windows】keras接口学习——线性回归与简单的分类

前言 之前有写过几篇TensorFlow相关文章&#xff0c;但是用的比较底层的写法&#xff0c;比如tf.nn和tf.layers&#xff0c;也写了部分基本模型如自编码和对抗网络等&#xff0c;感觉写起来不太舒服&#xff0c;最近看官方文档发现它的教程基本都使用的keras API&#xff0c;这…

【TensorFlow-windows】keras接口——卷积手写数字识别,模型保存和调用

前言 上一节学习了以TensorFlow为底端的keras接口最简单的使用&#xff0c;这里就继续学习怎么写卷积分类模型和各种保存方法(仅保存权重、权重和网络结构同时保存) 国际惯例&#xff0c;参考博客&#xff1a; 官方教程 【注】其实不用看博客&#xff0c;直接翻到文末看我的c…