如何在Windows上使用Visual Studio构建OGRE?

6
希望这篇文章能帮助很多在Windows上安装OGRE时遇到困难的人。我曾经也经历过,不希望其他人再度承受同样的痛苦。
我尝试通过阐述更多的步骤和细节来使这篇解释与其他网站不同。记录了其他人甚至没有想到的问题和解决方案。

答案已经在这里了:http://blog.tidalware.com/2009/08/building-ogre-with-visual-studio/ - Marc Plano-Lesay
这个答案没有解释很多东西。尽管那个网站对我帮助最大。 - Nav
1个回答

19

构建Ogre的普通方法:

从互联网获取一个新的Ogre自解压器(这些说明适用于Ogre版本1.7.3)。
下载并安装CMake。
下载并安装DirectX SDK。
在至少有4.3GB空间的驱动器中创建一个名为“OGRE”的文件夹。
将Ogre源代码提取到OGRE文件夹中。
下载Ogre依赖项并将其提取到OGRE文件夹中。
运行CMake并将Visual Studio 10设置为默认编译器。
指定Ogre的源目录。它是ogre_src_v1-7-3文件夹。
还需在Windows中将OGRE_HOME环境变量设置为ogre_src_v1-7-3的完整路径(通过右键单击我的电脑、属性、高级、环境变量、用户变量、新建来设置)。
为CMake指定一个目录,用于放置其创建的二进制文件。你可以在OGRE文件夹中创建一个名为“Binaries”的目录。
点击CMake中的“Configure”按钮。
屏幕上将显示许多红色条目。对于OGRE_DEPENDENCIES_DIR条目,请指定上面提取的依赖文件夹的路径。
再次点击“Configure”,所有那些红线都会变成白色,这意味着配置已成功。
点击“Generate”。
这只是CMake的部分完成。
前往Binaries文件夹,你会看到OGRE.sln。双击打开它在VS2010中。
右键单击“ALL-BUILD”项目并构建或按F5(如果按F5,则当构建完成时,它会说无法运行,这没问题,因为所有的构建不是为了运行)
在双核2GHz PC上,带1GB RAM,构建过程应该需要约30分钟。
将“Sample browser”项目设置为当前活动项目,并按F5运行。
这就完成了!Ogre已经在你的系统上配置好了。

======================================================

但如果您遇到构建问题:

为避免大量问题,请确保从互联网获取您的Ogre源代码作为原始文件夹/压缩文件/自解压器,并在计算机上安装DirectX SDK。在系统上创建一个文件夹来存储Ogre源代码文件夹。
完成后,Ogre源代码、二进制文件和生成文件总共将占用约4.3GB的磁盘空间。

< p > < em >【注意】不要在您的系统上安装Visual Studio 2008。如果您已经安装了它,并且在构建ogre.sln时出现问题(致命错误C1902:程序数据库管理器不匹配,请检查您的安装),则只需在使用VS2010构建时删除mspdp100.dll文件即可。(还没有确认此问题是否真的是由安装VS2008引起的。它可能是因为在此文件中编写的一个步骤,其中mspdb100.dll被复制到不应该存在的文件夹中所致。如果您正在使用VS2008构建Ogre,并显示“致命错误”,则删除mspdb80.dll就是解决方案。)

将Ogre源代码解压到您的系统中的文件夹中。最好有一个像这样的目录路径:
"your-root\Ogre\Binaries\",放二进制文件。
以及
*"your-root\Ogre\ogre_src_v1-7-3\"*,放源代码。

CMake:
下载并安装CMake,它可以帮助配置Ogre以便安装到系统中。
运行CMake可执行文件。
选择“将cmake添加到当前用户的系统PATH”选项。
找到cmake的安装位置,在\CMake 2.8\bin\cmake-gui.exe下运行它。
指定二进制和源目录。
在CMake GUI上单击“高级”复选框
将CMAKE_CXX_COMPILER设置为your-Visual-Studio-installation-path/VC/bin/cl.exe
将CMAKE_C_COMPILER设置为your-Visual-Studio-installation-path/VC/bin/cl.exe
将CMAKE_RC_COMPILER设置为RC.exe文件所在的任意路径(在“Program files”文件夹中搜索,您可能会找到rc.exe)
单击“configure”,它可能会出现无法找到mspdb100.dll的错误
从your-Visual-Studio-installation-path\Common7\IDE复制mspdb100.dll,并粘贴到your-Visual-Studio-installation-path\VC\bin中(这不是正确的方法,但好吧…;如果在Ogre的构建过程中显示了“程序数据库管理器不匹配”的错误,您稍后可能必须删除该文件)
完成配置后,单击“generate”,它将生成ogre.sln文件或“.dsw”文件,当您单击时,将创建ogre.sln文件。更多详细信息如下。
注意:Cmake维护一个缓存。随时重新配置cmake,您必须清除缓存。Cmake 2.8在菜单中提供了清除缓存的选项。如果您安装了cmake 2.6.4,则可以在窗口底部找到一个按钮以清除缓存。一旦清除缓存,您就可以选择编译器。我选择了VS2006,并没有改变本地编译器的任何选项。保持不变即可。
注意2:当我安装Visual C++ 2006时,C和C++编译器现在能够编译cmake的测试文件,但是cmake找不到位于ogre_src_v1-7-3 bin文件夹中的某些dll。它正在\tpcsed.com\projectshare\mapex\OGRE3D文件夹中寻找,因此我将bin文件夹复制到\tpcsed.com\projectshare\mapex\OGRE3D文件夹中。然后一切都正常运行了。

如果您的Visual Studio版本无法实现上述配置,您可能需要安装VS2006才能指定正确的c1.exe和rc.exe文件。VS2010的c1.exe和rc.exe对我无效。

编译依赖项:
解压OgreDependencies_MSVC_20101231.zip 前往your-root\Ogre\ogre_src_v1-7-3\Dependencies\src 使用VS2010打开OgreDependencies.VS2010.sln(或与您的VS对应的sln文件) 右键单击解决方案并为调试和发布构建解决方案(右键单击解决方案 > 属性 > 配置 > 配置管理器按钮 > 活动解决方案配置组合框)

构建Ogre:
单击your-root\Ogre\ogre_src_v1-7-3\bin\ogre.dsw文件,确保它在您使用的VS版本中打开。 在我的情况下,这是VS2010(如果您在CMake中使用了VS2006,则将有一个dsw文件,该文件将把解决方案转换为您的VS版本)
会创建一个ogre.sln文件。 双击它。
右键单击ALL_BUILD项目,然后单击生成。 您应该为发布和调试分别执行此操作,但仅对调试执行此操作足以满足我(目前)。
右键单击INSTALL项目,然后单击生成。 您应该为发布和调试分别执行此操作,但仅对调试执行此操作足以满足我(目前)。
要么执行上述2个步骤,要么单击清除并构建整个解决方案。
如果出现错误,请搜索构建失败的项目,阅读错误并进行更正。 所有项目至少都必须成功构建调试版本。

如果构建失败,则清理项目并重新构建。 或从cmake步骤重新开始。
如果存在构建错误,请查找其原因并查看列出的错误。 这可能是因为您未在系统上安装DirectX SDK或者因为您在ogre.sln项目属性中错误指定了某些路径。 检查所有值以查看是否所有路径都正确。
就这样!

像TBB、Boost等可选依赖关系我没有尝试安装。 Ogre可以正常工作。

运行:
尝试一个小的Ogre应用程序。 您应该能够运行最简单的应用程序:

#include <Ogre.h>
//code is from http://blog.tidalware.com/2009/06/ogre-and-visual-studio-beginners-faq/
int main(int argc, char* argv[])
{
    Ogre::Root* root = new Ogre::Root("plugins.cfg", "ogre.cfg", "Ogre.log");
    delete root;
    return 0;
}

右键单击解决方案,在配置属性>常规>字符集中,将其指定为“使用多字节字符集”。这可以防止由于旧的wchar typedef引起的错误。同时,针对链接器,必要时指定附加库目录。在链接器>输入中,添加“OgreMain_d.lib;OIS_d.lib”用于Ogre,如果使用OpenGL,则添加“opengl32.lib;glu32.lib”。

如果遇到其他问题,请检查您的工作目录是否与输出目录相同。完成上述步骤后,您的程序应该可以构建和编译。

运行程序时可能会遇到一些错误:如果找不到OgreMain_d.dll,只需在Ogre源目录中找到它,并将其粘贴到项目的Debug目录中。出于可移植性原因,您可能还需要将Ogre的许多其他资源文件复制到项目的Debug目录中(取决于哪些文件对您的程序是必需的)。

若要查看变量路径(例如$(TargetPath)),只需单击任何属性值时显示的组合框,然后会弹出一个小对话框。点击“宏>>”即可查看值/路径。

建议设置OGRE_HOME Windows环境变量。右键单击“My Computer”,选择属性>高级>环境变量>系统变量>新建。创建一个名为OGRE_HOME的新环境变量,并将其指定为您的Ogre源文件夹ogre_src_v1-7-3的路径。在VS中指定路径时可以使用$(OGRE_HOME)

如果您做了更多的工作或遇到错误并找到了解决方案,请在此文档中添加更多信息。

我的同事在这个构建过程中帮助了我很多,并从以下链接中获得了更多帮助:http://blog.tidalware.com/2009/08/building-ogre-with-visual-studio/http://blog.tidalware.com/2009/06/ogre-and-visual-studio-beginners-faq/以及官方Ogre网站。当您遇到构建错误时,通过Google搜索肯定也可以找到很多帮助。祝愿勇敢的开发者一切顺利!


注意:我在构建Ogre时遇到了所有这些问题,因为一个人给了我他的构建文件来构建我的。目录不同,所以我遇到了所有这些问题。使用新下载的Ogre并且构建过程将非常容易。 - Nav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接