OSG3.4.0+VS2010+WIN10编译及二次开发环境搭建

 

 

         这是我的第一篇博文,最近在学习QGIS和OSG,在开源软件编译及环境搭建中遇到了一系列的问题,因此也查询学习了网上的很多教程,在几次试验后终于完成了源码的编译和环境配置,写下这篇博文,希望对大家学习如何搭建OSG开发环境有所帮助。

       首先介绍一下我的系统环境:我是在WIN10系统下使用VS2010的编译器完成源码的编译,因为OSG有Qt模块,在CMAKE时需要选择选择qmake,我这里编译使用的QT版本是qt4.8.7-vs2010。

 

      1、相关文件

OSG源码:OpenSceneGraph-3.4.0.zip

OSG第三方库:3rdParty_VC10_x86_x64.zip

OSG数据包:OpenSceneGraph-Data-3.4.0.zip

CMake版本:我使用的CMake3.9.3(当前最新版本:cmake-3.10.0-rc2-win32-x86.msi

        其中3rdParty_VC10_x86_x64.zip下载解压后有两个版本x86和x64,由于使用的vs2010是32位,且编译时选择编译32位版本,所以源码编译时第三方库选择x86版本,x64版本可以删除。

 

       2、编译准备

       (1)在E盘新建一个OSG文件夹,将上面下载的三个文件解压,解压后的文件夹分别改为:OpenSceneGraph-3.4.0、3rdParty、data并放到OSG文件夹下,将3rdParty文件夹下x64版本删除,在OpenSceneGraph-3.4.0目录下新建build文件夹,之后CMake编译都在此文件夹下进行,如图所示:

        

 

         (2)打开CMake(cmake-gui),将OpenSceneGraph-3.4.0文件夹下的CMakeLists.txt文件拖到CMake中,然后更改编译路径,如下图所示:

 

 

 

 

         (3)点击Configure按钮,然后在弹出的对话框中选择Visual Studio 102010,Use default native compilers,如下图所示:

 

 

         (4)点击Finish后,CMake会出现大片红色警告,不用担心,这里的错误大多是路径问题,我们只需要依据Name修改Value正确的路径即可,注意,此处如果路径配置有问题,编译可能会不能通过,或者编译后缺少第三方库等不能打开文件如png等:

 

 

         (5)修改ACTUAL_3RDPARTY_DIR目录为:E:/OSG/3rdParty/x86,注意:如果不更改目录而由CMake默认,许多其他的第三方插件可能会不能使用,比如不能读取图片和字体等。然后修改CMAKE_INSTALL_PREFIX安装目录,在后续的编译中会将编译结果(bin、include、lib)拷到CMAKE_INSTALL_PREFIX指定的地方,如果这个构建出错,就需要我们手工拷贝库文件头文件等,这里指定目录:E:/OSG/OpenSceneGraph。修改QT_QMAKE_EXECUTABLE的路径到qmake.exe的路径,在本机下为:E:/QT/4.8.7/bin/qmake.exe,并且将BUILD_OSG_EXAMPLES打上对勾,配置如下图所示:

 

 

 

 

(6)点击Configure之后又出现一堆问题,不要紧,因为这些库不影响我们进行一般的三维开发,只要将BUILD_MFC_EXAMPLE和Advanced打上对勾,如下图所示:

 

 

         (7)再点击configure,就没有报错了,如图:

 

 

(8)最后点击Generate按钮,即在E:\OSG\OpenSceneGraph-3.4.0\build文件夹下可生成相应的工程,如下图所示:

 

 

 

 

 

3、编译工程

3.1、使用vs2010打开项目文件OpenSceneGraph.sln,使用vs的生成—批生成工具对项目进行编译,选择ALL_BUILD的Debug和Release,如下图所示,然后选择生成:

 

 

       3.2、点击生成之后就进入了编译,整个编译过程大概要4个小时,视电脑配置而定,如下图所示,编译全部成功:

 

 

       3.3、编译完成之后再次打开批处理,将ALL_BUILD的Debug和Release对勾去掉,然后选择INSTALL的Debug和Release版本,点击生成,这个编译会很快,如下图所示:

 

 

至此,整个OSG源码编译的过程就完成了。

 

4、环境配置

 

如果上述CMAKE_INSTALL_PREFIX指定正确,编译后会在:E:/OSG下新建OpenSceneGraph文件夹,编译生成的bin、include、lib会被拷贝到此文件夹下,为了方便使用我们编译的开发包,将OSG下的data文件夹移动到OpenSceneGraph目录下。我们要使用这些库文件头文件进行二次开发,只需正确的设置环境变量并配置工程附加依赖库即可。

 

4.1、添加环境变量(此电脑-属性-高级系统设置-高级-环境变量)

新建系统变量:OSG_FILE_PATH:E:\OSG\OpenSceneGraph\data

追加系统变量:PATH:E:\OSG\ OpenSceneGraph\bin

4.2、项目中配置OSG开发库

4.2.1使用VS2010新建C++ WIN32控制台程序,添加一个cpp文件。

4.2.2右键项目,选择“属性”,选择“VC++目录”,在包含目录添加:E:\OSG\OpenSceneGraph \include在库目录添加:D:\OSG\OpenSceneGraph \lib。

 

 

4.2.3打开项目属性的链接器-输入里,附加依赖项加上: OpenThreadsd.lib、osgd.lib、osgDBd.lib、osgUtild.lib、osgGAd.lib、osgViewerd.lib、
osgTextd.lib ,在lib文件夹内,每一个库文件均有一个release版本和一个debug版本,库文件名后面带d的如osgd.lib是debug版本,不带d的如osg.lib是release版本。

 

 

4.2.4在cpp文件内输入以下代码测试:


    #include <osgViewer/Viewer>

    #include <osgDB/ReadFile>

 

    int main(int argc, char **argv)

    {

          osg::ref_ptr<osg::LightSource> ls= new osg::LightSource(); 

           osg::ref_ptr< osg::Light> lt = new osg::Light;  

            lt->setLightNum(0);  

            lt->setPosition(osg::Vec4(1.0, -1.0, -1.0, 0));  

            lt->setAmbient(osg::Vec4(0.2, 0.2, 0.2, 1.0));  

            lt->setDiffuse(osg::Vec4(1.0, 1.0, 1.0, 1.0));  

            osgViewer::Viewer viewer;

            viewer.getCamera()->setClearColor(osg::Vec4(0,1,1,1));

            viewer.setSceneData(osgDB::readNodeFile("glider.osg"));

            viewer.setUpViewInWindow(300,100,800,600);

           viewer.setLight(lt);

            return    viewer.run();

    }
 


 

 

编译成功运行:

 

 

以上就是OSG编译到二次开发环境配置的全过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值