zoukankan      html  css  js  c++  java
  • OSG编译

    参考:

    部分依赖库

    库名

    版本

    下载官网

    zlib

    1.2.8

    http://www.zlib.net/

    libpng

    1.6.21

    http://www.libpng.org/pub/png/libpng.html

    libjpeg

    9b

    http://www.ijg.org/

    libtiff

    4.0.6

    http://www.linuxfromscratch.org/blfs/view/svn/general/libtiff.html

    FreeType

    2.6.3

    http://www.freetype.org/

    GLUT

    3.7

    https://github.com/markkilgard/glut

    GIFLIB

    5.1.2

    http://sourceforge.net/projects/giflib/

    MINIZIP

    最新

    http://github.com/nmoinvaz/minizip

    cURL

    7.49.1

    http://curl.haxx.se/



    1.下载OSG库

    OSG源码

    http://www.openscenegraph.org/index.php/download-section/stable-releases

    https://github.com/openscenegraph/OpenSceneGraph/releases


    第三方依赖:

    http://www.openscenegraph.org/index.php/download-section/dependencies

    https://download.osgvisual.org/3rdParty_VS2017_v141_x64_V11_full.7z


    数据:

    http://www.openscenegraph.org/index.php/download-section/data

    http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.4.0/data/OpenSceneGraph-Data-3.4.0.zip


    2.将下载后的文件解压到如下目录

    E:osgOpenSceneGraphOpenSceneGraph-3.6.4

    image


    E:osgOpenSceneGraph3rdParty

    image


    3.更新相关的最新依赖

    3.1 FBX

    将安装的FBX SDK目录下的内容复制到OSG第三方依赖的对应目录中

    FBX SDK2019.2include    -->    E:osgOpenSceneGraph3rdPartyinclude

    FBX SDK2019.2libvs2017x64 elease    -->   E:osgOpenSceneGraph3rdPartylib

    FBX SDK2019.2libvs2017x64debug    -->   E:osgOpenSceneGraph3rdPartylibdebug


    3.2 FFmpeg

    ffmpeg-4.2.1-win64-dev.zip

    ffmpeg-4.2.1-win64-shared.zip

    将下载的FFmpeg目录下的内容复制到OSG第三方依赖的对应目录中

    ffmpeg-4.2.1-win64-dev.zipffmpeg-4.2.1-win64-devinclude             -->      E:osgOpenSceneGraph3rdPartyinclude

    ffmpeg-4.2.1-win64-dev.zipffmpeg-4.2.1-win64-devlib                    -->      E:osgOpenSceneGraph3rdPartylib

    ffmpeg-4.2.1-win64-shared.zipffmpeg-4.2.1-win64-sharedin         -->       E:osgOpenSceneGraph3rdPartyin


    3.3 opencascade

    将编译后的opencascade目录下的内容复制到OSG第三方依赖的对应目录中

    OpenCascadeinc                                     -->      E:osgOpenSceneGraph3rdPartyinclude

    OpenCascadewin64vc14lib                    -->      E:osgOpenSceneGraph3rdPartylib

    OpenCascadewin64vc14in                   -->      E:osgOpenSceneGraph3rdPartyin

    OpenCascadedata                                  -->       E:osgOpenSceneGraph3rdPartydata

    OpenCascadesrc                                    -->       E:osgOpenSceneGraph3rdPartysrc

    OpenCascadecmake                              -->        E:osgOpenSceneGraph3rdPartycmake


    3.3 SDL和SDL2

    SDL-devel-1.2.15-VC.zipSDL-1.2.15include         -->      E:osgOpenSceneGraph3rdPartyinclude

    SDL-devel-1.2.15-VC.zipSDL-1.2.15libx64         -->      E:osgOpenSceneGraph3rdPartylib


    SDL2-devel-2.0.10-VC.zipSDL2-2.0.10include     -->      E:osgOpenSceneGraph3rdPartyinclude

    SDL2-devel-2.0.10-VC.zipSDL2-2.0.10libx64     -->      E:osgOpenSceneGraph3rdPartylib



    4. 应用CMake


    CMAKE_INSTALL_PREFIX 这个表示OpenCascade最后生成的链接库的位置,将其修改为:  E:/osg/OpenSceneGraph/OpenSceneGraph

    ----

    image


    image


    image


    image


    image


    image


    image


    image


    image


    image


    image


    image


    image


    5.

    用VS2019打开

    E:osgOpenSceneGraphuildOpenSceneGraph.sln

    文件



    6. 修改源码

    6.1 修改_WIN32_WINDOWS宏定义、_WIN32_WINNT宏定义  与 _WIN32_IE宏定义


    E:osgOpenSceneGraphOpenSceneGraph-3.6.4includeosgViewerapiWin32GraphicsHandleWin32 文件

    image


    E:osgOpenSceneGraphOpenSceneGraph-3.6.4examplesosgviewerMFCstdafx.h 文件

    image


    6.2 给cout与endl添加命名空间std::


    E:osgOpenSceneGraphOpenSceneGraph-3.6.4srcosgPluginsOpenCASCADEReaderWriterOpenCASCADE.cpp 文件


    将其中的cout 与 endl 没有添加命名空间的加上命名空间  std::

    image


    6.3 修改链接的lib库

    Plugins opencascade  的  链接的lib库

    image

    修改为

    ......libosgDB.lib
    ......libosgUtil.lib
    E:osgOpenSceneGraph3rdPartylibTKBin.lib
    E:osgOpenSceneGraph3rdPartylibTKBinL.lib
    E:osgOpenSceneGraph3rdPartylibTKBinTObj.lib
    E:osgOpenSceneGraph3rdPartylibTKBinXCAF.lib
    E:osgOpenSceneGraph3rdPartylibTKBO.lib
    E:osgOpenSceneGraph3rdPartylibTKBool.lib
    E:osgOpenSceneGraph3rdPartylibTKBRep.lib
    E:osgOpenSceneGraph3rdPartylibTKCAF.lib
    E:osgOpenSceneGraph3rdPartylibTKCDF.lib
    E:osgOpenSceneGraph3rdPartylibTKDCAF.lib
    E:osgOpenSceneGraph3rdPartylibTKDraw.lib
    E:osgOpenSceneGraph3rdPartylibTKernel.lib
    E:osgOpenSceneGraph3rdPartylibTKFeat.lib
    E:osgOpenSceneGraph3rdPartylibTKFillet.lib
    E:osgOpenSceneGraph3rdPartylibTKG2d.lib
    E:osgOpenSceneGraph3rdPartylibTKG3d.lib
    E:osgOpenSceneGraph3rdPartylibTKGeomAlgo.lib
    E:osgOpenSceneGraph3rdPartylibTKGeomBase.lib
    E:osgOpenSceneGraph3rdPartylibTKHLR.lib
    E:osgOpenSceneGraph3rdPartylibTKIGES.lib
    E:osgOpenSceneGraph3rdPartylibTKIVtk.lib
    E:osgOpenSceneGraph3rdPartylibTKIVtkDraw.lib
    E:osgOpenSceneGraph3rdPartylibTKLCAF.lib
    E:osgOpenSceneGraph3rdPartylibTKMath.lib
    E:osgOpenSceneGraph3rdPartylibTKMesh.lib
    E:osgOpenSceneGraph3rdPartylibTKMeshVS.lib
    E:osgOpenSceneGraph3rdPartylibTKOffset.lib
    E:osgOpenSceneGraph3rdPartylibTKOpenGl.lib
    E:osgOpenSceneGraph3rdPartylibTKPrim.lib
    E:osgOpenSceneGraph3rdPartylibTKQADraw.lib
    E:osgOpenSceneGraph3rdPartylibTKRWMesh.lib
    E:osgOpenSceneGraph3rdPartylibTKService.lib
    E:osgOpenSceneGraph3rdPartylibTKShHealing.lib
    E:osgOpenSceneGraph3rdPartylibTKStd.lib
    E:osgOpenSceneGraph3rdPartylibTKStdL.lib
    E:osgOpenSceneGraph3rdPartylibTKSTEP.lib
    E:osgOpenSceneGraph3rdPartylibTKSTEP209.lib
    E:osgOpenSceneGraph3rdPartylibTKSTEPAttr.lib
    E:osgOpenSceneGraph3rdPartylibTKSTEPBase.lib
    E:osgOpenSceneGraph3rdPartylibTKSTL.lib
    E:osgOpenSceneGraph3rdPartylibTKTObj.lib
    E:osgOpenSceneGraph3rdPartylibTKTObjDRAW.lib
    E:osgOpenSceneGraph3rdPartylibTKTopAlgo.lib
    E:osgOpenSceneGraph3rdPartylibTKTopTest.lib
    E:osgOpenSceneGraph3rdPartylibTKV3d.lib
    E:osgOpenSceneGraph3rdPartylibTKVCAF.lib
    E:osgOpenSceneGraph3rdPartylibTKViewerTest.lib
    E:osgOpenSceneGraph3rdPartylibTKVRML.lib
    E:osgOpenSceneGraph3rdPartylibTKXCAF.lib
    E:osgOpenSceneGraph3rdPartylibTKXDEDRAW.lib
    E:osgOpenSceneGraph3rdPartylibTKXDEIGES.lib
    E:osgOpenSceneGraph3rdPartylibTKXDESTEP.lib
    E:osgOpenSceneGraph3rdPartylibTKXMesh.lib
    E:osgOpenSceneGraph3rdPartylibTKXml.lib
    E:osgOpenSceneGraph3rdPartylibTKXmlL.lib
    E:osgOpenSceneGraph3rdPartylibTKXmlTObj.lib
    E:osgOpenSceneGraph3rdPartylibTKXmlXCAF.lib
    E:osgOpenSceneGraph3rdPartylibTKXSBase.lib
    E:osgOpenSceneGraph3rdPartylibTKXSDRAW.lib

    opengl32.lib
    ......libosg.lib
    ......libOpenThreads.lib
    E:osgOpenSceneGraph3rdPartylibzlib.lib
    kernel32.lib
    user32.lib
    gdi32.lib
    winspool.lib
    shell32.lib
    ole32.lib
    oleaut32.lib
    uuid.lib
    comdlg32.lib
    advapi32.lib


    Examples osgmovie  的  链接的lib库


    image

    修改为

    ....libosgViewer.lib
    ....libosgText.lib
    opengl32.lib
    ....libosgGA.lib
    ....libosgDB.lib
    E:osgOpenSceneGraph3rdPartylibzlib.lib
    E:osgOpenSceneGraph3rdPartylibSDLmain.lib
    E:osgOpenSceneGraph3rdPartylibSDL.lib
    E:osgOpenSceneGraph3rdPartylibSDL2main.lib
    E:osgOpenSceneGraph3rdPartylibSDL2.lib
    E:osgOpenSceneGraph3rdPartylibSDL2test.lib

    ....libosgUtil.lib
    ....libosg.lib
    ....libOpenThreads.lib
    kernel32.lib
    user32.lib
    gdi32.lib
    winspool.lib
    shell32.lib
    ole32.lib
    oleaut32.lib
    uuid.lib
    comdlg32.lib
    advapi32.lib


    7. 修改编译类型

    image


    8. 编译


    image


    9. 安装


    image


    10. 结果如下

    image

  • 相关阅读:
    最短路径算法
    XMLhelper
    关于NuDaqPci 数据采集
    批处理常用命令及用法大全
    c#智能感知(设置)及实现
    单片机串行通信全解析
    Esp8266
    使用NOOBS给树莓派安装系统Raspbian
    命令提示符编译java
    javaWeb使用POI操作Excel
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/12230540.html
Copyright © 2011-2022 走看看