参考:
部分依赖库
库名 | 版本 | 下载官网 |
zlib | 1.2.8 | |
libpng | 1.6.21 | |
libjpeg | 9b | |
libtiff | 4.0.6 | http://www.linuxfromscratch.org/blfs/view/svn/general/libtiff.html |
FreeType | 2.6.3 | |
GLUT | 3.7 | |
GIFLIB | 5.1.2 | |
MINIZIP | 最新 | |
cURL | 7.49.1 |
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
2.将下载后的文件解压到如下目录
E:osgOpenSceneGraphOpenSceneGraph-3.6.4
E:osgOpenSceneGraph3rdParty
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
----
5.
用VS2019打开
E:osgOpenSceneGraphuildOpenSceneGraph.sln
文件
6. 修改源码
6.1 修改_WIN32_WINDOWS宏定义、_WIN32_WINNT宏定义 与 _WIN32_IE宏定义
E:osgOpenSceneGraphOpenSceneGraph-3.6.4includeosgViewerapiWin32GraphicsHandleWin32 文件
E:osgOpenSceneGraphOpenSceneGraph-3.6.4examplesosgviewerMFCstdafx.h 文件
6.2 给cout与endl添加命名空间std::
E:osgOpenSceneGraphOpenSceneGraph-3.6.4srcosgPluginsOpenCASCADEReaderWriterOpenCASCADE.cpp 文件
将其中的cout 与 endl 没有添加命名空间的加上命名空间 std::
6.3 修改链接的lib库
Plugins opencascade 的 链接的lib库
修改为
......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库
修改为
....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. 修改编译类型
8. 编译
9. 安装
10. 结果如下