pvrtexlib static lib win64 linker error





Hi,
 
When using the newly provided static libs from your sdk for pvrtexlib I get linker errors for Windows 64-bit platform:
 

2>engine64.lib(pvr_utils.obj) : error LNK2019: unresolved external symbol pvrtc_get_version referenced in function "public: void __cdecl pvrtexlib::PVRTextureUtilities::getPVRTCVersion(unsigned int &,unsigned int &,unsigned int &,unsigned int &)" (?getPVRTCVersion@PVRTextureUtilities@pvrtexlib@@QEAAXAEAI000@Z)


2>engine64.lib(pvr_io.obj) : error LNK2001: unresolved external symbol pvrtc_get_version

 

When compiling 32-bit all works fine!
 
 
Edit: on Win64 I need to manually add following line to my project to make compiling work:

extern "C" {void pvrtc_get_version(Ptr,Ptr,Ptr,Ptr) {}}


Esenthel2011-10-27 14:25:38

Hi Esenthel,

Thanks for reporting this! This is an odd bug - not even sure why it’s complaining as it’s an internal function - though perhaps significantly it is external in our PVRTC library. I’ve marked it into our internal bug tracker (BRN34818) and will be looking into it shortly.

Thanks,

Tobias

Hi Esenthel,

I double checked the linking for PVRTexLib and all seems to be working fine. However on reviewing your post I am a little confused with your use of the library - for example it’s stating that pvr_utils.obj is a member of “engine64.lib” …? How are you linking to PVRTexLib? Have you renamed the library or are you using individual objects from it? If not, it could be a problem with your copy of Visual Studio. Have you updated to service pack 1 for Visual Studio 2008?

Thanks,

Tobias



Hi Esenthel,

Ok the bug finally showed up completely at random in one of our builds, I’m not sure exactly what was causing it, it looks like a weird compiler glitch that shows up from time to time. I’ve removed the dependency from the library as it’s not even an external function and I’ll try to get a new version out asap.

Thanks,

Tobias