• Advertisement
Sign in to follow this  

undefined reference to DirectDrawCreate@12

This topic is 1351 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I encountered this issue today when compiling an older program under VC++ 2010.

An old thread on the subject mentioned that ddraw.lib might be missing. After installing the DXSDK_Feb10.exe package from Microsoft, which is the last version to include ddraw.lib, I had the lib on my system.

I executed the shell script for setting proper ENV variables for VC++ and the related script for the DX SDK, compiled my source and when it hit the linker, bam. Fail.

I had direct.h in my topmost include file and ddraw.lib in my Makefile. No dice. I tried adding dxguid.lib and moved ddraw.lib to the top of my LIBRARIES order. Still failed.

Turns out that on x86-64 systems, the shell script for setting the LIB path for the DX SDK defaults to using x86-64 libs. That old function didn't exist in the 64-bit library. I had to tell it to set my ENVs specifically for x86.

Once that was fixed, the linker worked. I didn't need to include dxguid.lib, extern statements or fancy pragma statements in my code, either. So for people running 64-bit systems, be aware of which set of libs you're linking to and save yourself a lot of grief.

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement