FTGLの導入その3

前回の続き。
コンパイルしてみるとリンクエラーがでる。

FTGLDemo.obj : error LNK2019: 未解決の外部シンボル _tbMatrix が関数 "void __cdecl display(void)" (?display@@YAXXZ) で参照されました。
FTGLDemo.obj : error LNK2019: 未解決の外部シンボル _tbAnimate が関数 "void __cdecl myinit(char const *)" (?myinit@@YAXPBD@Z) で参照されました。
FTGLDemo.obj : error LNK2019: 未解決の外部シンボル _tbInit が関数 "void __cdecl myinit(char const *)" (?myinit@@YAXPBD@Z) で参照されました。
FTGLDemo.obj : error LNK2019: 未解決の外部シンボル _tbMotion が関数 "void __cdecl motion(int,int)" (?motion@@YAXHH@Z) で参照されました。
FTGLDemo.obj : error LNK2019: 未解決の外部シンボル _tbMouse が関数 "void __cdecl mouse(int,int,int,int)" (?mouse@@YAXHHHH@Z) で参照されました。
FTGLDemo.obj : error LNK2019: 未解決の外部シンボル _tbReshape が関数 "void __cdecl myReshape(int,int)" (?myReshape@@YAXHH@Z) で参照されました。
ftgl_static_D.lib(FTBufferGlyph.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Render_Glyph が関数 "protected: __thiscall FTBufferGlyphImpl::FTBufferGlyphImpl(struct FT_GlyphSlotRec_ *,class FTBuffer *)" (??0FTBufferGlyphImpl@@IAE@PAUFT_GlyphSlotRec_@@PAVFTBuffer@@@Z) で参照されました。
ftgl_static_D.lib(FTTextureGlyph.obj) : error LNK2001: 外部シンボル "__imp__FT_Render_Glyph" は未解決です。
ftgl_static_D.lib(FTPixmapGlyph.obj) : error LNK2001: 外部シンボル "__imp__FT_Render_Glyph" は未解決です。
ftgl_static_D.lib(FTBitmapGlyph.obj) : error LNK2001: 外部シンボル "__imp__FT_Render_Glyph" は未解決です。
ftgl_static_D.lib(FTSize.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Set_Char_Size が関数 "public: bool __thiscall FTSize::CharSize(struct FT_FaceRec_ * *,unsigned int,unsigned int,unsigned int)" (?CharSize@FTSize@@QAE_NPAPAUFT_FaceRec_@@III@Z) で参照されました。
ftgl_static_D.lib(FTFace.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_New_Face が関数 "public: __thiscall FTFace::FTFace(char const *,bool)" (??0FTFace@@QAE@PBD_N@Z) で参照されました。
ftgl_static_D.lib(FTFace.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_New_Memory_Face が関数 "public: __thiscall FTFace::FTFace(unsigned char const *,unsigned int,bool)" (??0FTFace@@QAE@PBEI_N@Z) で参照されました。
ftgl_static_D.lib(FTFace.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Done_Face が関数 "public: virtual __thiscall FTFace::~FTFace(void)" (??1FTFace@@UAE@XZ) で参照されました。
ftgl_static_D.lib(FTFace.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Attach_File が関数 "public: bool __thiscall FTFace::Attach(char const *)" (?Attach@FTFace@@QAE_NPBD@Z) で参照されました。
ftgl_static_D.lib(FTFace.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Attach_Stream が関数 "public: bool __thiscall FTFace::Attach(unsigned char const *,unsigned int)" (?Attach@FTFace@@QAE_NPBEI@Z) で参照されました。
ftgl_static_D.lib(FTFace.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Get_Kerning が関数 "public: class FTPoint __thiscall FTFace::KernAdvance(unsigned int,unsigned int)" (?KernAdvance@FTFace@@QAE?AVFTPoint@@II@Z) で参照されました。
ftgl_static_D.lib(FTFace.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Load_Glyph が関数 "public: struct FT_GlyphSlotRec_ * __thiscall FTFace::Glyph(unsigned int,int)" (?Glyph@FTFace@@QAEPAUFT_GlyphSlotRec_@@IH@Z) で参照されました。
ftgl_static_D.lib(FTGlyph.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Outline_Get_CBox が関数 "public: __thiscall FTBBox::FTBBox(struct FT_GlyphSlotRec_ *)" (??0FTBBox@@QAE@PAUFT_GlyphSlotRec_@@@Z) で参照されました。
ftgl_static_D.lib(FTLibrary.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Done_FreeType が関数 "public: __thiscall FTLibrary::~FTLibrary(void)" (??1FTLibrary@@QAE@XZ) で参照されました。
ftgl_static_D.lib(FTLibrary.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Init_FreeType が関数 "private: bool __thiscall FTLibrary::Initialise(void)" (?Initialise@FTLibrary@@AAE_NXZ) で参照されました。
ftgl_static_D.lib(FTCharmap.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Get_Char_Index が関数 "public: __thiscall FTCharmap::FTCharmap(class FTFace *)" (??0FTCharmap@@QAE@PAVFTFace@@@Z) で参照されました。
ftgl_static_D.lib(FTCharmap.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Set_Charmap が関数 "public: __thiscall FTCharmap::FTCharmap(class FTFace *)" (??0FTCharmap@@QAE@PAVFTFace@@@Z) で参照されました。
ftgl_static_D.lib(FTCharmap.obj) : error LNK2019: 未解決の外部シンボル __imp__FT_Select_Charmap が関数 "public: bool __thiscall FTCharmap::CharMap(enum FT_Encoding_)" (?CharMap@FTCharmap@@QAE_NW4FT_Encoding_@@@Z) で参照されました。
C:\Program Files\Microsoft Visual Studio 9.0\VC\ftgl\msvc\vc8\Debug\FTGLDemo.exe : fatal error LNK1120: 外部参照 21 が未解決です。

ひどいリンクエラー。
この種のエラーはヘッダーファイルはincludeできているけどlibを読み込めていないときにでるエラーである。
というわけでftgl_static_D.libを読み込むがこのエラーは消えない。なぜだ?
と思ってさらにgoogle大先生に聞いてみる。

するとどうやら同じエラーにぶち当たっている人は数多くいるようだ。
http://www.gamedev.net/community/forums/topic.asp?topic_id=464230
原因はどうやらfreetypeC++でなくCでかかれていることらしい。
だから

extern "C"{
	/* We need the Freetype headers */
	#include <ft2build.h>
	#include FT_FREETYPE_H
	#include FT_GLYPH_H
	#include FT_OUTLINE_H
}

と書き換えるとうまくいった、とある。
…が私の場合はなぜかうまくいかないorz...
誰か同じようなバグに出会い解決した人がいたら教えてください。。。