osg+vs2013+win7环境搭建部分问题汇总

前言:因为做毕设需要搭建osg环境,对于小白来说过程异常艰苦,搭建过程中遇到的各种问题很不友好,所幸得到各路大佬的支招,最终完成了搭建。这里把自己搭建过程中所遇到的全部问题和解决方法列出来,并贴上相关原帖地址,希望对一样刚接触osg的盆友有所帮助。文章主要参考了

http://bbs.osgchina.org/forum.php?mod=viewthread&tid=9223&highlight=osg%2Bvs2010&_dsign=253e9edb


一  准备工作:

1.Cmake下载安装:我用的cmake-3.7.0-rc1-win32-x86.msi 直接去官网https://cmake.org/files/可下载历史版本

2.Vs2013下载安装

注意:最开始用的是vs2010,但是处理安装源码生成的sln文件时会随机闪退,vs2013没遇到这个问题

3.Osg源码下载:OpenSceneGraph-3.4.0.zip  下载地址 http://www.openscenegraph.org/index.php/download-section

4.Osg数据包下载:OpenSceneGraph-Data-3.4.0.zip 

下载地址 http://www.openscenegraph.org/index.php/download-section

5.Osg第三方库下载:http://download.osgvisual.org/3rdParty_VS2013_v120_x86_x64_V9_full.7z

 注意:如果自己去osg网站上下osg第三方库,有small和full两个版本,建议使用full版本

下载后文件夹里有两个文件(x86和x64)删去x64版本(理由详见http://bbs.osgchina.org/forum.php?mod=viewthread&tid=9223&highlight=osg%2Bvs2010&_dsign=253e9edb)

6.在E盘(盘符随便)下新建名为osg文件,将3 4 5 步里的文件解压于此(可以改下名字 好认),记得3rdParty(osg第三方库)中只存放x86版本(第五步解压后删除x64文件夹,将x86文件夹下所有文件剪切到3rdParty文件夹下



二  安装源码

参考http://bbs.osgchina.org/forum.php?mod=viewthread&tid=9223&highlight=osg%2Bvs2010&_dsign=253e9edb

1.打开cmake,将OpenSceneGraph(源码包解压后文件夹)中文件 CMakeLists.txt 拖入cmake ,where to build the binaries选择 E:/osg/OpenSceneGraph ,点击configure 选择vs2013

注意:我出现过CMakeLists.txt拖入cmake没反应的情况,解决方法是将OpenSceneGraph的源码包解压到当前文件夹(将源码包放在建立好的osg文件夹下解压),解压出的CMakeLists文件可以拖入

注意:大佬们说要在OpenSceneGraph下建立build文件夹

where to build the binaries选择 E:/osg/OpenSceneGraph/build 这一步可以不考虑,不这样做也可以成功搭建

注意:如果出现下面的报错

error in configuration process,project files may be invalid


参考 https://blog.csdn.net/eggsdandan/article/details/75577995(不确定是否是造成这个问题的唯一原因,我是因为卸载 又重装过vs2010)

2.ACTUAL_3RDPARTY_DIR:选择 E:/osg/3rdPatry

   BUILD_OSG_EXAMOLES: 打勾

   CMAKE_INSTALL_PREFIX:E:/osg/OpenSceneGraph

   然后 configure

注意:大佬们教程上会如下写,不明白为什么加/; 反正不加没问题,加了的那次后面sln会报很多错,不知道和这个有关吗

  CMAKE_INSTALL_PREFIX:E:/osg/OpenSceneGraph/;

3.advanced 打勾

  BUILD_MFC_EXAMPLE: 打勾

  然后configure

  接着点击Generate 在E:/osg/OpenSceneGraph 下生成一个OpenSceneGraph.sln 大小在460KB左右

  如果where to build the binaries选择 E:/osg/OpenSceneGraph/build 则生成的OpenSceneGraph.sln在该目录下



三  编译sln

1. 将生成的sln文件拖入vs2013 选择生成-批生成 选择ALL_BUILD 的debug 和Release 然后点击生成 大概需要5h

2.上步完成后选择生成-批生成 选择INSTALL的debug和Release然后点击生成 时间大概1h(看大佬写的1h 我第一遍编没看时间  把报的错改好了以后重复该步骤只用了不到10min) 

注意:

如果All_BUILD报错 

下载安装 vc_mbcsmfc.exe  

INSTALL报错这两个错 同上(我是ALL_BUILD出现这两个报错没管 直接生成的INSTALL 还会报这两个错)

注意:

如果INSTALL报错如下

error MSB3073: The command "setlocal
E:\cmake3.0.0\CMake\bin\cmake.exe-DBUILD_TYPE=Debug -P cmake_install.cmake

if %errorlevel% neq0 goto :cmEnd
:cmEnd
endlocal & call:cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq0 goto :VCEnd
:VCEnd" exitedwith code 1. C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets 132 5 INSTALL

以管理员身份运行vs2013(右键管理员没用  可以右键在 兼容性或者快捷方式-高级 里改) (参考:https://www.douban.com/note/512587853/)


四  环境变量设置

详见http://bbs.osgchina.org/forum.php?mod=viewthread&tid=9223&highlight=osg%2Bvs2010&_dsign=253e9edb

这里没出什么问题就不多赘述了


五 新建OSG项目测试

1.在VS2013下新建WIN32控制台程序, 添加一个cpp, 输入以下代码:
                                   #include<osgViewer/Viewer>
                                   #include<osgDB/ReadFile>
                                   int main( int argc, char **argv )

                                    {
                                         osgViewer::Viewer viewer;
                                         viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
                                        return viewer.run();

                                    }

代码来源:

http://bbs.osgchina.org/forum.php?mod=viewthread&tid=9223&highlight=osg%2Bvs2010&_dsign=253e9edb

注意:一定要用 新建WIN32控制台 项目,否则代码在生成时会大量报错

2.添加库引用,右键项目,选择“属性”,选择“VC++目录”,在包含目录添加:C:\OSG\include,在库目录添加:C:\OSG\lib.打开项目属性的链接器,输入选项里,附加依赖项加上:OpenThreadsd.lib    osgd.lib    osgDBd.lib   osgUtild.lib   osgGAd.lib   osgViewerd.lib   osgTextd.lib 然后就可以运行了

注意:如果调试时显示计算机中丢失osg130-osgDBd.dll就重启电脑(对的 就是这样)

参考https://blog.csdn.net/wuwangrun/article/details/8203274

注意:调试时提示缺少zlib.dll和zlibd.dll。 解决方法是将D:/OSG/3rdParty_x86_x64/x86/bin下的zlib.dll和zlibd.dll文件拷到C:/OSG/bin目录下,这样应该就可以运行了。 参考https://blog.csdn.net/u013045316/article/details/51615226





猜你喜欢

转载自blog.csdn.net/blueta/article/details/79925564