OGRE学习之创建OGRE指南
本文翻译自OGRE 1.12.0官网
OGRE支持在所有平台上使用CMake作为其构建系统。这篇文章将向您解释怎样使用CMake从源代码构建Ogre。你需要一个>=3,。3版本的CMake。
What is CMake?
CMake是一个跨平台的构建系统,或者更准确的说是构建配置器。它是一个程序,从一组CMake脚本为你的平台创建一个本级构建系统,允许你构建Ogre。构建过程可以通过CMake进行配置。Ogre提供了几个可用于自定义构建的选项。
Preparing the build environment
你现在应该在Ogre源文件之外的某个地方为Ogre创建一个构建目录。这是CMake将为你选择的平台和编译器创建构建系统的目录,也是编译Ogre库的地方。这样,可以使Ogre源目录保持整洁,你也可以在同一个Ogre源中使用多个构建目录。
Getting dependencies(依赖包)
默认情况下,在你第一次运行CMake时,ogre将自动构建基本依赖项。如果你更愿意使用系统范围的库,请设置OGRE_BUIL_DEPENDENCIES=OFF。
默认情况下,Ogre会将依赖项安装到build dir中的子文件夹Dependencies中。您可以通过在CMake中设置OGRE_DEPENDENCIES_DIR来配置它。例如,使它指向所有项目的公共依赖项文件夹。在此目录中,你必须具有子目录bin,lib分别放置依赖项的.dll,.lib和头文件。
在linux上,你还需要以下系统头来构建GL RenderSystems(Ubntu命令):
sudo apt-get install libgles2-mesa-dev libxt-dev libxaw7-dev
此外,我们建议按转发以下可选包:
sudo apt-get install nvidia-cg-toolkit libsdl2-dev doxygen
这些将启用SampleBrower中的输入处理功能并构建文档。
如果你无法获取平台的预构建二进制文件,请阅读下面的条目,并从网站获取源包,然后根据其文档构建它。
Essential dependencies(基本依赖)
freetype:http://www.freetype.org/
Recommended dependencies:
zlib:http://www.zlib.net/
zziplib:https://github.com/paroj/ZZIPlib
Optional dependencies:
- DirectX SDK: http://msdn.microsoft.com/en-us/directx/
- FreeImage: http://freeimage.sourceforge.net
- Doxygen: http://doxygen.org
- Cg: http://developer.nvidia.com/object/cg_toolkit.html
- Boost: http://www.boost.org (+)
- POCO: http://pocoproject.org (+)
- TBB: http://www.threadingbuildingblocks.org (+)
(+)可以用于线程而不是std::thread
Running CMake现在,通过在控制台键入名称或者从开始菜单中选择名称来启动CMake-gui。在源代码位置字段中输入Ogre源目录的路径(包含此文件的目录)。在“构建二进制文件的位置”字段中,输入你创建的构建目录的路径。选中Configure(配置)将会出现一个对话框,要求你选择一个生成器。
查看CMake documentation详细信息,了解哪个适用于您的平台和编译器。
Note:
在OSX上,你必须使用Xcode生成器来获取正确的SampleBrower.app包。
单击Finish.CMake现在将收集与你的构建环境的一些信息,并城市找到依赖项。然后它将显示构建选项列表。你可以根据自己的喜好调整设置,例如:取消选中任何OGRE_BUILD_XXX选项将禁用该特定组件的构建。符合你的条件后,再次单击“Configure”。然后CMake将为你创建构建系统。
Buiding
转至你选择的构建目录。CMake为你生成了一个构建系统,你现在将用它来构建Ogre。如果你使用的是Visual Studio,则应该找到OGRE.sln文件。打开并编译目标BUILD_ALL。同样,你会发现一个用来在MacOS上构建Ogre的Xcode。
如果你希望触发构建控制台,则转到你的构建目录并调用相应的如下的make程序来开始构建过程。
cmake --build . --config release
如果你安装了doxygon并且CMake选择了它,那么会有一个名为OgreDoc的额外构建目标,你可以选择构建它。这将从头文件中新生成Ogre类的API文档。在Visual Studio中,只需在Linux类型上选择并构建目标OgreDoc:
make OgreDoc
Installing
构建完成后,你可以选择让构建系统将构建的库和标头复制到干净的位置。建议你执行此步骤,因为这样可以更轻松的在项目中使用Ogre。在Visual Studio中,只需选择并构建目标INSTALL。在MSVC中使用命令行时,输入:
cmake --build . --config release --target INSTALL
对于基于Makefile的生成器,请输入;
make install # (or sudo make install, if root privileges are required)
在Linux上,默认情况下,Ogre将安装到/usr/local。在Wwindow上,这将在你的构建目录中创建文件夹sdk,并在那里复制所有必需的库。你可以通过更改CMake中的变量CMAKE_INSTALL_PREFIX来更改安装位置。
Building on Mac OX for IOS OS
要为iOS构建Ogre,您需要将ios交叉工具链指定为cmake as
cmake -DCMAKE_TOOLCHAIN_FILE=CMake/toolchain/ios.toolchain.xcode.cmake -G Xcode .
不幸的是,您现在必须执行一些手动步骤才能使生成的构建系统正常工作。
现在已经在构建目录中生成了一个Xcode项目,因此要启动Ogre构建,请打开OGRE.xcodeproj并像往常一样构建。要在设备上运行样本,您需要安装有效的iOS Developer证书。对于每个示例,双击“组和文件”列表中的目标。确保在“代码签名标识”下拉菜单中选择了有效标识。另外,因为我们无法告诉CMake你想要的Xcode项目格式,你必须自己更改。打开“项目”菜单,选择“编辑项目设置”。单击设置窗口中的常规选项卡。将项目格式更改为Xcode 3.1-compatible。另外,你需要手动设置Info.plist文件的Bundle Identifier属性,以匹配所选代码签名标识的App ID。这可以从“目标属性”面板完成。如果要为设备构建,它必须与有效开发人员证书的捆绑标识符匹配。
Building as Window Store or Window Phone application
你需要Windows 8.0或更高版本,建议使用Windows 10。
您需要Visual Studio 2012或更高版本,建议使用Visual Studio 2015,因为它与Universal 10.0.240.0,WinStore 8.0 / 8.1和WinPhone 8.0 / 8.1 SDK捆绑在一起。
下载并安装CMake 3.4或更高版本。
必须使用修补的依赖项,使用适当的WINAPI_FAMILY进行编译。 不支持Cg。 您可以使用https://bitbucket.org/eugene_gff/ogre-dependencies-winrt - 具有针对Win32的VS2012和VS2013项目,WinRT(可以重用于WinPhone)编译计划在运行CMake之前使用的所有配置的依赖项。 Win32和WinRT的依赖项必须位于不同的文件夹中,Win32版本可以从OgreDependencies.VS201x.sln构建,WinRT可以从OgreDependencies.VS201x.WinRT.sln构建。
运行CMake,指定源和二进制文件夹,而不是“Configure”,选择“Visual Studio 14 2015”生成器和“指定交叉编译选项”选项,指定操作系统=“WindowsStore”或“WindowsPhone”,版本=“8.0” ,“8.1”或UAP操作系统=“WindowsStore”,Version =“10.0.10240.0”,“10.0.10586.0”然后“Finish”,为OGRE_DEPENDENCIES_DIR指定WinRT依赖项文件夹,“Configure”,应该没有更多错误,那么 按“Generate”。
选择SampleBrowser作为启动项目并运行。
Notes:
1.代码和生成的CMake解决方案应该在本地NTFS驱动器上,并且不能在网络驱动器上,包括VMWare共享文件夹 - 或者当您尝试编译/链接/运行生成的exe时,你将遇到错误。
2.Ogre使用d3dcompiler_xx.dll来编译着色器,而WinStore和WinPhone 8.1项目可以不受限制地使用它,因为它是操作系统的一部分。但WinStore和WinPhone 8.0应用程序应该从缓存加载已编译的着色器,因为d3dcompiler_xx.dll仅在开发期间可用。因此,为了避免在开发期间部署d3dcompiler_xx.dll(使用d3dcompiler_xx.dll进行其他配置)以及生成此类缓存,请使用这些平台的8.1版本。
3.在运行在VMware下的操作系统中运行WinPhone模拟器:我们能够通过两个步骤运行模拟和调试而不会出现问题:(a)在VM> CPU的设置下,确保您可以选择通过IntelVT-x / EPT功能,(b)编辑配置文件.vmx并添加参数:hypervisor.cpuid.v0 =“FALSE”在VMware中运行和窗口最大化时,所有版本的Visual Studio 2012都有窗口刷新问题,解决方案只是将Visual Studio窗口的大小更改为更小的屏幕宽度和高度。
Building for WebAssembly(using Emscripten)
安装Emscripten SDK(请参阅www.emscripten.org上的完整文档),并确保正确设置环境变量(例如,在尝试构建之前运行源<emsdk_path> /emsdk_env.sh)
使用emscripten以交叉编译模式运行cmake,如下所示:
mkdir build-wasm
emcmake cmake .. -DCMAKE_BUILD_TYPE=Release
emmake make
注意:为了简化过程,使用'emcmake'和'emmake'包装器。这些工具由Emscripten提供,用于正确设置交叉编译环境。
这不会构建完整的SampleBrowser,而只是一个最小的Sample。生成的EmscriptenSample.html将放在$ {CMAKE_BINARY_DIR} / bin /中。
要防止任何跨源问题,请以python3 -m http.server 8000启动本地Web服务器并访问localhost:8000。
上一篇: JS中的NaN和isNaN
下一篇: Swing之滚动条
推荐阅读
-
OGRE学习之创建OGRE指南
-
kubernetes(k8s) 学习 (十一) k8s存储之 持久卷(PV) (静态 PV+nfspv的创建)
-
学习Hadoop权威指南之Hadoop运行MapReduce日志查看 博客分类: hadoop hadoop大数据
-
学习Hadoop权威指南之MapReducer气象数据分析 博客分类: hadoop hadoopMapReduce
-
Flask框架的学习指南之开发环境搭建
-
Flask框架的学习指南之制作简单blog系统
-
Gulp学习指南之CSS合并、压缩与MD5命名及路径替换_html/css_WEB-ITnose
-
jQuery学习笔记之创建DOM元素
-
MySQL学习笔记之创建、删除、修改表的方法
-
Flask框架的学习指南之制作简单blog系统