Search code examples
c++visual-studiodevelopment-environmentsdl-2

cannot see the file 'SDL2.lib'


This question is not a duplicate of cannot open file 'SDL2.lib' which discusses this same error but my problem is that I don't have an SDL2.lib file, if I can just see it I can make this work

I'm trying to set up the development environment for SDL2 by following Lazy Foo's tutorial.
Setting up SDL 2 on Visual Studio 2010 Ultimate

The tutorial is for Visual Studio 2010, I'm using Visual Studio Community Edition 2017. Is that a problem?

The problem starts when linking the libraries, there is no x86 or x64 folder inside the lib directory of SDL2's Windows Development libraries that I downloaded from SDL version 2.0.8 (stable).

So I specified it as lib/ instead of lib/x86 as it says in the tutorial.

These are the files inside the lib folder

$ ls
cmake/     libSDL2.dll.a  libSDL2_test.a   libSDL2main.a   pkgconfig/
libSDL2.a  libSDL2.la     libSDL2_test.la  libSDL2main.la

When building VS2017 is throwing an error saying that Cannot open file 'SDL2.lib'. Yeah, there is no such file. Do I need to do an additional step to get this file?

When I configured for CodeBlocks it works fine. What exactly am I doing wrong here? This may have an obvious answer but I'm not able to find it.


Solution

  • Library name `libSDL2.dll.a' indicates that it is not meant for use with VS C++ ( for dynamic link you need dll + lib, for static link you need only the lib ). You can construct a lib file from dll using dumpbin.exe and lib.exe. Your options are:

    1) Download SDL source file in zip format from GitHub and create you own binaries.

    2) Use vcpkg and install in just one command line ( recommended).

    3) Download the SDL binaries from internet. ( you can have linker issues if the project configurations doesn't matches yours)