Unresolved external symbols for FreeImage
randallrvr opened this issue · 3 comments
Getting a lot of "error LNK2019: unresolved external symbol" errors when building samples in VS2013 (see below). Can be solved by building FreeImage manually and replacing included FreeImage .dll & .lib
3>C:\ogl-samples-4.4.1.2\build\Debug\gl-320-fbo.exe : fatal error LNK1120: 10 unresolved externals
9>png.obj : error LNK2019: unresolved external symbol _FreeImage_Initialise referenced in function "void __cdecl glf::FreeImageInit(void)" (?
FreeImageInit@glf@@yaxxz)
9>png.obj : error LNK2019: unresolved external symbol _FreeImage_DeInitialise referenced in function "void __cdecl glf::FreeImageFree(void)" (?FreeImageFree@glf@@yaxxz)
9>png.obj : error LNK2019: unresolved external symbol _FreeImage_Unload referenced in function "class gli::texture2D __cdecl glf::load_png(char const *)" (?load_png@glf@@ya?AVtexture2D@gli@@pbd@Z)
9>png.obj : error LNK2019: unresolved external symbol _FreeImage_Load referenced in function "class gli::texture2D __cdecl glf::load_png(char const *)" (?load_png@glf@@ya?AVtexture2D@gli@@pbd@Z)
9>png.obj : error LNK2019: unresolved external symbol _FreeImage_Save referenced in function "void __cdecl glf::save_png(class gli::texture2D const &,char const *)" (?save_png@glf@@YAXABVtexture2D@gli@@pbd@Z)
9>png.obj : error LNK2019: unresolved external symbol _FreeImage_GetBits referenced in function "class gli::texture2D __cdecl glf::load_png(char const *)" (?load_png@glf@@ya?AVtexture2D@gli@@pbd@Z)
9>png.obj : error LNK2019: unresolved external symbol _FreeImage_GetBPP referenced in function "class gli::texture2D __cdecl glf::load_png(char const *)" (?load_png@glf@@ya?AVtexture2D@gli@@pbd@Z)
9>png.obj : error LNK2019: unresolved external symbol _FreeImage_GetWidth referenced in function "class gli::texture2D __cdecl glf::load_png(char const *)" (?load_png@glf@@ya?AVtexture2D@gli@@pbd@Z)
9>png.obj : error LNK2019: unresolved external symbol _FreeImage_GetHeight referenced in function "class gli::texture2D __cdecl glf::load_png(char const *)" (?load_png@glf@@ya?AVtexture2D@gli@@pbd@Z)
9>png.obj : error LNK2019: unresolved external symbol _FreeImage_ConvertFromRawBits referenced in function "void __cdecl glf::save_png(class gli::texture2D const &,char const *)" (?save_png@glf@@YAXABVtexture2D@gli@@pbd@Z)
I see the same issue here but I wasn't able to rebuild freeimage straight away.
Under VS2013 (which is what gtruc sdk now requires) it fails to compile, complaining about
using std::min;
using std::max;
statements.
It does compile with vs2010, which is good.
The rebuilt Freeimage lib and dll don't fix the linkage issue though, I still get this:
3>framework.lib(png.obj) : error LNK2019: unresolved external symbol _FreeImage_Initialise referenced in function "void __cdecl 'anonymous namespace'::FreeImageInit(void)" (?FreeImageInit@?A0x9635cf5a@@YAXXZ) 3>framework.lib(png.obj) : error LNK2019: unresolved external symbol _FreeImage_DeInitialise referenced in function "void __cdecl 'anonymous namespace'::FreeImageFree(void)" (?FreeImageFree@?A0x9635cf5a@@YAXXZ) 3>framework.lib(png.obj) : error LNK2019: unresolved external symbol _FreeImage_Unload referenced in function "class gli::texture2D __cdecl load_png(char const *)" (?load_png@@YA?AVtexture2D@gli@@PBD@Z) 3>framework.lib(png.obj) : error LNK2019: unresolved external symbol _FreeImage_Load referenced in function "class gli::texture2D __cdecl load_png(char const *)" (?load_png@@YA?AVtexture2D@gli@@PBD@Z) 3>framework.lib(png.obj) : error LNK2019: unresolved external symbol _FreeImage_Save referenced in function "void __cdecl save_png(class gli::texture2D const &,char const *)" (?save_png@@YAXABVtexture2D@gli@@PBD@Z) 3>framework.lib(png.obj) : error LNK2019: unresolved external symbol _FreeImage_GetBits referenced in function "class gli::texture2D __cdecl load_png(char const *)" (?load_png@@YA?AVtexture2D@gli@@PBD@Z) 3>framework.lib(png.obj) : error LNK2019: unresolved external symbol _FreeImage_GetBPP referenced in function "class gli::texture2D __cdecl load_png(char const *)" (?load_png@@YA?AVtexture2D@gli@@PBD@Z) 3>framework.lib(png.obj) : error LNK2019: unresolved external symbol _FreeImage_GetWidth referenced in function "class gli::texture2D __cdecl load_png(char const *)" (?load_png@@YA?AVtexture2D@gli@@PBD@Z) 3>framework.lib(png.obj) : error LNK2019: unresolved external symbol _FreeImage_GetHeight referenced in function "class gli::texture2D __cdecl load_png(char const *)" (?load_png@@YA?AVtexture2D@gli@@PBD@Z) 3>framework.lib(png.obj) : error LNK2019: unresolved external symbol _FreeImage_ConvertFromRawBits referenced in function "void __cdecl save_png(class gli::texture2D const &,char const *)" (?save_png@@YAXABVtexture2D@gli@@PBD@Z)
This issue is fixed in 4.4.2 branch.
Thanks,
Christophe
Christophe
This issue is fixed in 4.4.2 branch.
Is this merged to top of tree?..
I just synced a top of tree and iiuc it is not merged, right?
I still have this problem with FreeImage not linking correctly at tot.
Alex