Imagination PowerVR SDK Blog

pvrtexlib static lib win64 linker error


#1




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

#2

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


#3

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




#4

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