OGRE 2.1 使用VS2015编译的过程以及问题的解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z_dmsd/article/details/64502370




官方OGRE源码

官方依赖库源码



首先,强烈建议先根据官方文档做好准备工作,准备相关的依赖库,下面这个是另一个作者的准备过程,可以参考;

第三方依赖的编译以及OGRE的前期准备工作在这  写的很详细,虽然是英文的,但是想编译源码的估计都能看懂;


文中提到的“Fix conflicting definition of snprintf”我并没有需要用到;



编译依赖库的过程就不多说了,上面的链接中有详细的说明怎么做,并且不会出现太大的问题,下面就来说说编译OGRE源码的一些问题;

首先先把使用cmake创建源码编译工程的截图贴上来:



这里面的一些选项和上面链接中是不一样的,不过大体也就是对应左边的项在右边填上依赖库的完整路径,这里我是把Debug版本和Release版本都添加了;

然后就是打开OGRE.sln准本开始源码编译了;

如果你是直接开始编译的,并且之前的依赖库准备工作没有出错的话,那么你应该会遇到以下错误:
 
  

  严重性代码说明 项目 文件 禁止显示状态
错误 C2661“std::condition_variable::wait_until”: 没有重载函数接受 3 个参数Sample_VolumeTexC:\Program Files (x86)\Microsoft Visual Studio14.0\VC\include\mutex734

严重性代码说明 项目 文件 禁止显示状态
错误 C2661“std::condition_variable::wait_until”: 没有重载函数接受 3 个参数Sample_VolumeTexC:\Program Files (x86)\Microsoft Visual Studio14.0\VC\include\mutex861


这个貌似是这个版本源代码中的一个bug,这里我的做法是直接卸载项目   Sample_VolumeTex   反正他只是一个样例项目----其实是我当时看源码看了半天没发现错误,然后不知道怎么修复。。,改完这里呢,还需要在  源代码目录(编译项目目录,不是解压的源代码目录)下的  /Samples文件夹中的  cmake_install.cmake文件中把
   第74行: include("D:/VSProject/build/Ogre/Samples/VolumeTex/cmake_install.cmake")  用#给注释掉;

    
	Error   1   error MSB3073: The command "setlocal
	"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake
	if %errorlevel% neq 0 goto :cmEnd
	:cmEnd
	endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
	:cmErrorLevel
	exit /b %1
	:cmDone
	if %errorlevel% neq 0 goto :VCEnd
	:VCEnd" exited with code 1.   C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets   113

  
   或者相似的错误,这里,我查了一下,大概就是项目生成的顺序不对,或者对相关目录没有写的权限,解决方法大概是以下两种;
1,管理员身份运行VS
2,调整项目生成顺序

但是悲剧的是我两种方法都没有解决问题,这里我参考的是   这篇博客的作者的做法,然后就顺利解决了;

哦对了,如果是编译是选择了发布版还需要安装 NSIS工具,这里安装方法就不多做解释了;

 
   最后运行SampleBrowser.exe的时候如果出现:


的错误,直接把之前编译依赖库时生成的SDL2.dll复制粘贴过来就行了,当然对应Debug版或Release版;

   
    






在这贴一个我编译好的文件    链接:http://pan.baidu.com/s/1nuJBVpZ 密码:0766
  






猜你喜欢

转载自blog.csdn.net/z_dmsd/article/details/64502370
2.1