[osg]OSG编译和使用第三方插件

一、OSG Core是不提供多数诸如文件读写功能的,如何强行使用,则会提示:

这是因为没有加入相应的插件。

插件的源码位于3rd party中http://openscenegraph.alphapixel.com/osg/downloads/openscenegraph-third-party-library-downloads ,在CMake的时候可以设置

编译时我犯了一个很蠢的错误,我下的3rd party包含两个版本:X64和X86。而我将目录设成了3rd party,怎么都编译不出freetype。

二、使用

使用插件时,不仅要加入所需要的库,并且要使用宏:

USE_OSGPLUGIN(param)

param是相应的插件名字!(我没注意这个,文字显示总不成功)

比如:

USE_OSGPLUGIN(bmp)
USE_OSGPLUGIN(3ds)
USE_OSGPLUGIN(osg)
USE_OSGPLUGIN(png)
USE_OSGPLUGIN(freetype)
USE_OSGPLUGIN(dds)

#ifdef DEBUG
#pragma comment( lib,"osgdb_bmpd.lib" )
#pragma comment( lib,"osgdb_3dsd.lib" )
#pragma comment( lib,"osgdb_osgd.lib" )
#pragma comment( lib,"osgdb_pngd.lib" )
#pragma comment( lib,"osgdb_freetyped.lib" )
#pragma comment( lib,"osgdb_ddsd.lib" )
#pragma comment(lib, "freetype2311MTd.lib")
#pragma comment(lib, "libpngd.lib")
#pragma comment(lib, "zlibD.lib")
#else 
#pragma comment( lib,"osgdb_bmp.lib" )
#pragma comment( lib,"osgdb_3ds.lib" )
#pragma comment( lib,"osgdb_osg.lib" )
#pragma comment( lib,"osgdb_png.lib" )
#pragma comment( lib,"osgdb_freetype.lib" )
#pragma comment( lib,"osgdb_dds.lib" )
#pragma comment(lib, "freetype2311MT.lib")
#pragma comment(lib, "libpng.lib")
#pragma comment(lib, "zlib.lib")
#endif
使用了USE_OSGPLUGIN的,一定要加入相应的lib。

这里注意freetype插件是比较特殊的,他不仅要加入osgdb_freetype.lib,还要加入freetype2311MT.lib(随3rdParty发布)。

你可能感兴趣的:([osg]OSG编译和使用第三方插件)