Whether you're a novice C++ programmer or a veteran software developer, graphics programming is an educational and rewarding experience. Simple DirectMedia Layer (SDL) is a C++ compatible library that allows simple, low-level access, to the graphics functionality of a variety of platforms. This wikiHow teaches you how to install and set up SDL with Visual Studio 2022. It configures OpenGL. This guide will assume your platform is Windows 10 or 11. It is addressing the beginner, save last 3 Parts. He learns how to set up SDL in project with Visual Studio by 3 ways: 1st targeting x32 platform, 2nd targeting x64 platform, and 3rd set up SDL source compiled by CMake and Visual studio. By default Visual Studio 2022 is x64 application. However it run interchangeably x86 (32 bits) and x64 applications.

Part 1
Part 1 of 21:

Configuring Visual Studio

  1. 1
    Highlight what you expect to do. Highlight step or sub-step you expect to do and then do it. See as example picture above.
  2. 2
    Download Visual Studio 2022. If you have not done so you can download it from https://www.visualstudio.com/downloads.
  3. Advertisement
Part 2
Part 2 of 21:

Downloading SDL

  1. 1
    Create folders GL and GLP. Open Windows's File Explorer > Navigate to disk (directory) C.
    • If folders GL and GLP exist it's okay.
    • If they do not, right click in empty area > select New > Folder > type GL > hit Enter. By same way create folder GLP.
  2. 2
    Download the latest version of SDL2. Right click on the following link and select Open Link in New Window https://github.com/libsdl-org/SDL/releases/tag/release-2.26.0. Scroll to the bottom. Click version (see image above) SDL2-devel-2.26.0-VC.zip (Visual C++ 32/64-bit) or latest.
    • In downloading window you have the folder SDL2-2.26.0, (or the last version). Click it > right click > select Copy.
    • Navigate to C:\GL. Inside GL, right click > select Paste.
    • Click on name SDL2-2.26.0, (or the last version), > right click > select "Rename" > type SDLbin > hit Enter. Now in folder GL you have folder SDLbin.
    • (Alternatively, open "Files Explorer" window > C: > GL. Go to downloading window > click downloaded folder and drag into C:\GL > rename to SDLbin).
    • Close downloading window.
  3. Advertisement
Part 3
Part 3 of 21:

Creating Project Targeting x32 Platform

  1. 1
    Create empty project.
    • If Visual Studio is not open. Open it > click Create a new project > find (see image above, if necessary scroll down the list. Icon is different than in image, it doesn't matter though) Empty Project Start from scratch with C++ for Windows. Provides no starting files., click it > click Next.
      • In "Project name" text field type (or copy and paste) SDLx32-0
      • In "Location" text field delete everything > copy C:\GLP\ > paste.
      • Check "Place solution and project in the same directory" > click Create. Wait till Visual Studio instance with project SDLx32-0, appears.
    • If Visual Studio is open. Click File > New > Project… . The rest as above.
  2. 2
    Add your Source file to the project.
    • In "Solution Explorer" window right click the "Source Files" folder (the last one) > click "Add > "New Item…"
    • Copy Main.cpp > in the "Add New Item" wizard delete "FileName.cpp" > paste > click Add. The file will open in the main text editor but leave the file blank for now.
  3. Advertisement
Part 4
Part 4 of 21:

Setting Up SDLx32 in Project

  1. 1
    Configure project's Properties. In "Solution Explorer" right click on the name of your project, that is SDLx32-0 (in image it is different, it doesn't matter), and select "Properties". In "SDLx32-0 Property Pages" wizard,
  2. 2
    Add dll file path (address) to "System Variables". In Windows search box on the taskbar (bottom left of the screen) type envir > hit Enter. "System Properties" wizard is thrown.
    • Select the "Advanced" tab from the top bar > click Environment Variables.... "Environment Variables" wizard is thrown.
    • Double click the "Path" (or "PATH") Variable in the "System Variables" section. "Edit environment variable" wizard is thrown.
    • Copy C:\GL\SDLbin\lib\x86 > click New > Paste.
    • Click OK in all 3 wizards.
    • Close Visual Studio > in thrown wizard "Save changes to the following items?" click Save.
    • Restart your PC > open Visual Studio. If project is open, it's okay. If it's not, in "Open recent" list, click "SDLx32-0.sln" the first one. Now your project is open ready for test.
  3. Advertisement
Part 5
Part 5 of 21:

Testing project and Correcting errors

  1. 1
    Test your project. Copy following code and paste in Main.cpp code area > in main menu select x86 > hit Ctrl+F5. If a black window with message "SDL initialization succeeded!" appears, then the project was set up correctly. You are now ready to program with SDL.
#include <iostream>
#include <SDL.h>
using namespace std;

int main(int argc, char * argv[])
{
	if (SDL_Init(SDL_INIT_EVERYTHING) < 0)
	{
		cout << "SDL initialization failed. SDL Error: " << SDL_GetError();
	}
	else
	{
		cout << "SDL initialization succeeded!";
	}

	cin.get();
	return 0;
}
  1. 1
    Correct errors. Files are missing. Copy C:\GLP\SDLx32-0 and paste in File Explorer Address Bar. You should see file you added Main.cpp, and 4 other files added by Visual Studio. If they are missing you missed add file Main.cpp. Go to Part 3, step 2, and add it now.
    • In "Error List" if you see error
      • cannot open file SDL.h, go to previous Part, step 1, Configure project's Properties, sub-step 2. Configure "Additional Include Directories" and follow instructions. Also check whether folder SDLbin exists in C:\GL.
      • cannot open file SDL2.lib or SDL2main.lib, go to previous Part, step 1, sub-step 3. Configure "Additional Library Directories" and follow instructions. Also to sub-step 4. Configure "Additional Dependencies".
      • "entry point must be defined" go to previous Part, step 1, sub-step 5. Configure "System" and follow instructions.
    • Thrown wizard about System or dll file, go to previous Part, steps 2 and 3, and follow instructions
    • For other errors. Check whether you have added source file. If you cannot correct them, close Visual Studio > delete project folder SDLx32-0 which lives in C:\GLP > open Visual Studio > repeat set up from Part 3. Good job.
  2. Advertisement
Part 6
Part 6 of 21:

Creating Project with SDLx32-0 Template

  1. 1
    Create template. Go to Visual Studio (see below image) and, while "SDLx32-0" is open, click "Project" > "Export Template...". On "Export template Wizard" check "Project Template", if it's not checked. Click Next >.
  2. 2
    Create project. In Visual Studio main menu, click File > New > Project....
    • In Create a new project wizard select SDLx32-0 (if necessary scroll down the list of templates) > click Next.
    • In Configure your new project wizard, if "Project name" is SDLx32-01 it's okay. If it's not, copy SDLx32-01 and paste.
    • Location should be C:\GLP, if it's not, copy C:\GLP and paste > Be sure Place solution and project in the same directory is checked > click Create.
    • In Visual Studio's GUI main menu, select x86 > hit Ctrl+F5. If a black window with message "SDL initialization succeeded!" appears, then the project was set up correctly. You are now ready to program with SDL.
    • TIP. When you create project with this template remember in Visual Studio main menu select x86.
  3. Advertisement
Part 7
Part 7 of 21:

Creating project to target x64 platform

  1. 1
    Create folders GL and GLP. Open Windows's File Explorer > Navigate to disk (directory) C.
    • If folders GL and GLP exist it's okay.
    • If they do not, right click in empty area > select New > Folder > type GL > hit Enter. By same way create folder GLP.
  2. 2
    Download SDL2. If you have not already downloaded it, go to Part 2, step 2, and download it.
  3. 3
    Create empty project.
    • If Visual Studio is not open. Open it > click Create a new project > find (see image above, if necessary scroll down the list. Icon is different than in image, it doesn't matter though) Empty Project Start from scratch with C++ for Windows. Provides no starting files., click it > click Next.
      • In "Project name" text field type (or copy and paste) SDLx64-0
      • In "Location" text field delete everything > copy C:\GLP\ > paste.
      • Check "Place solution and project in the same directory" > click Create. Wait till Visual Studio instance with project SDLx32-0, appears.
    • If Visual Studio is open. Click File > New > Project… . The rest as above.
  4. 4
    Add your Source file to the project.
    • In "Solution Explorer" window right click the "Source Files" folder (the last one) > click "Add > "New Item…"
    • Copy Main.cpp > in the "Add New Item" wizard delete "FileName.cpp" > paste > click Add. The file will open in the main text editor but leave the file blank for now.
  5. Advertisement
Part 8
Part 8 of 21:

Installing SDLx64-0 in the Project

  1. 1
    Project's Property Pages. Go to "Solution Explorer" > right click on the name of your project SDLx64-0 > select "Properties". In SDLx64-0 Property Pages wizard,
  2. 2
    Add dll file path (address) to "System Variables". In Windows search box on the taskbar (bottom left of the screen) type envir > hit Enter. "System Properties" wizard is thrown.
    • Select the "Advanced" tab from the top bar > click Environment Variables.... "Environment Variables" wizard is thrown.
    • Double click the "Path" (or "PATH") Variable in the "System Variables" section. "Edit environement variable" wizard is thrown.
    • Copy C:\GL\SDLbin\lib\x64 > click New > Paste.
    • Click OK in all 3 wizards.
    • Close Visual Studio > in thrown wizard "Save changes to the following items?" click Save.
    • Restart your PC > open Visual Studio. In "Open recent" list, click "SDLx64-0.sln", the first one. Now your project is open ready for test.
  3. Advertisement
Part 9
Part 9 of 21:

Testing SDLx64-0 project and Correcting errors

  1. 1
    Test your project. Copy following code and paste in Main.cpp code area > in main menu select x64 > hit Ctrl+F5. If a black window with message "SDL initialization succeeded!" appears, then the project was set up correctly. You are now ready to program with SDL.
#include <iostream>
#include <SDL.h>
using namespace std;

int main(int argc, char * argv[])
{
	if (SDL_Init(SDL_INIT_EVERYTHING) < 0)
	{
		cout << "SDL initialization failed. SDL Error: " << SDL_GetError();
	}
	else
	{
		cout << "SDL initialization succeeded!";
	}

	cin.get();
	return 0;
}
  1. 1
    Correct errors. Files are missing. Copy C:\GLP\SDLx64-0 and paste in File Explorer Address Bar. You should see file you added Main.cpp, and 4 other files added by Visual Studio. If they are missing you missed add file Main.cpp. Go to Part 7, step 4, and add it now.
    • In "Error List" if you see error
      • cannot open file SDL.h, go to previous Part, step 1, sub-step 2 Additional Include Directories, and follow instructions. Also check whether folder SDLbin exists in C:\GL.
      • cannot open file SDL2.lib or SDL2main.lib, go to previous Part, step 1, sub-step 3 Additional Library Directories and follow instructions. Also to sub-step 4 Configure Additional Dependencies.
      • "entry point must be defined" go to previous Part, step 1, sub-step 5 Configure System, and follow instructions.
    • Thrown wizard about System or dll file, go to previous Part, steps 2 and 3, and follow instructions
    • For other errors. If you can't correct them, close Visual Studio > delete project folder SDLx64-0 which lives in C:\GLP > open Visual Studio > repeat set up from Part 7. Good job.
    • TIP: Even if in Property Pages main settings it is Platform: x64, click Configuration manager... and in Active solution platform: select x64.
  2. Advertisement
Part 10
Part 10 of 21:

Creating Project targeting x64 Platform, with Template

  1. 1
    Create template. Go to Visual Studio (see below image) and, while "SDLx64-0" is open, click "Project" > "Export Template...". On "Export template Wizard" check "Project Template", if it's not checked. Click Next >.
  2. 2
    Create project. In Visual Studio main menu, click File > New > Project....
    • In Create a new project wizard in the list of templates select SDLx64-0 (if necessary scroll down the list) > click Next.
    • In Configure your new project wizard, if "Project name" is SDLx64-01 it's okay. If it's not copy SDLx64-01 and paste. Location should be C:\GLP. If it's not, copy C:\GLP and paste.
    • Be sure Place solution and project in the same directory is checked > click Create.
    • In Visual Studio GUI's main menu, select x64. Hit Ctrl+F5.
    • TIP: Remember in every project you create with this template, select x64 (next to Debug) in Visual Studio's GUI.
  3. Advertisement
Part 11
Part 11 of 21:

Installing Cmake

  1. 1
    Compiling a library from the source code guarantees that the resulting library is perfectly tailored for your CPU/OS, a luxury pre-compiled binaries don't always provide. It is also important that binaries you get target x64 platform.
  2. 2
    Create folders GL and GLP. Open Windows's File Explorer > Navigate to disk (directory) C.
    • If folders GL and GLP exist it's okay.
    • If they do not, right click in empty area > select New > Folder > type GL > hit Enter. By same way create folder GLP.
  3. 3
    Download CMake. Right-click on following address and select Open Link in New Window https://cmake.org/download/. Scroll down the page and find "Latest Release (3.25.1)", (or latest). In second "Platform" list, find (see image above) "Windows x64 ZIP" and click the beside entry cmake-3.25.3-windows-x86_64.zip (or latest) > in opening wizard select Save file.
  4. 4
    Copy and unzip the zip folder.
    • If the downloaded folder doesn't contain line with stripes (unzipped folder) click it > right click > Copy.
    • If downloaded folder's icon contains vertical line with stripes (zipped folder), double click it for get unzipped folder, (or alternatively, click folder > right click > in drop-down menu select Extract all).
      • When unzipping (extracting files) is finished, click unzip folder cmake-3.25.3-windows-x86_64.zip (or latest) > right click > Copy.
    • Go to drive (directory) C: > GL > right click > Paste.
    • (Alternatively click folder "cmake-3.25.3-windows-x86_64" and drag into folder "GL").
    • When copying is finished click folder "cmake-3.25.3-windows-x86_64" > right click > select "Rename" > type CMake > hit Enter > double click it > double click folder bin > inside you should see CMake's logo next to file name cmake-gui > double click this file. Now on your screen you have CMake GUI.
    • Each time you need CMake, navigate to C:\ > GL > double click folder CMake > double click "bin" > double click file cmake-gui (the one with CMake's logo).
  5. Advertisement
Part 12
Part 12 of 21:

Compiling Source Code with CMake and Visual Studio

  1. 1
    Download source code. Right-click on following address and select Open Link in New Window https://github.com/libsdl-org/SDL/releases/tag/release-2.26.0. See image above. Select Source code (zip).
    • Copy and unzip folder.
      • In downloading window click zip folder SDL-release-2.26.0 (or latest version) > right click > select Copy.
      • Navigate to C:\ > GL > right click > select Paste.
        • (Alternatively click folder and drag into C:\GL).
      • Now in directory C:\GL, you have unzip folder SDL-release-2.26.0 (or latest version). Click twice on its name > delete name > type: SDLsrc > hit Enter.
  2. 2
    Compile source by Cmake and Visual Studio. See above image.
    • Copy (attention do not copy any space)C:/GL/SDLsrc > paste in CMake GUI first text field.
    • Copy (attention do not copy any space)C:/GL/SDLsrc/build and paste in the second text field.
    • Configure and generate. In CMake GUI, click Configure > in wizard Create Directory click Yes > in wizard "Specify the generator for this project" click Finish.
      • If, instead, wizard "Error" is thrown, click OK > click "File" > click "Delete Cache" > in thrown wizard "Delete Cache", click Yes.
    • When, in CMake GUI, you read: "Configuring done", click Generate. You should read: "Generating done".
  3. 3
    Build your solution.
    • Copy C:/GL/SDLsrc/build and paste in File Explorer's Address bar > hit Enter > double click "SDL2.sln", or "SDL2", or "ALL_BUILD.vcxproj". An instance of Visual Studio appears. In the main menu, click "Build" > "Build Solution".
    • Wait till in "Output" window last line you read: ========== Build: X succeeded, 0 failed, 0 up-to-date, Y skipped" ==========
      • TIP: Numbers X of "succeeded" and Y "skipped" change in SDL2 versions. Today (March 14, 2023) are 7 and 2 respectively.
    • Close this instance of Visual Studio > close Cmake.
  4. Advertisement
Part 13
Part 13 of 21:

Creating Project SDLsrc-0

  1. 1
    Create empty project.
    • If Visual Studio is not open. Open it > click Create a new project > find (see image above, if necessary scroll down the list. Icon is different than in image, it doesn't matter though) Empty Project Start from scratch with C++ for Windows. Provides no starting files., click it > click Next.
      • In Configure your new project wizard,
        • Copy SDLsrc-0 and paste in "Project name", text field.
        • If "Location" is "C:\GLP\" it's okay. If it's not, copy C:\GLP\ > in "Location" text field delete everything > paste.
        • Check "Place solution and project in the same directory".
        • Click Create.
        • Wait till Visual Studio instance appears.
    • If it is open. Click File > New > Project… . The rest as above.
  2. 2
    Add source file.
    • In "Solution Explorer" window right click the "Source Files" folder (the last one) > click "Add > "New Item…"
    • Copy Main.cpp > in the "Add New Item" wizard delete "FileName.cpp" > paste > click Add. The file will open in the main text editor but leave the file blank for now.
  3. Advertisement
Part 14
Part 14 of 21:

Setting up compiled SDL Source

  1. 1
    Configure project's Properties. In Solution Explorer wizard, right click Project's name that is SDLsrc-0 > select Properties. In 'SDLsrc-0 Property Pages wizard,
  2. 2
    Add dll file path (address) to "System Variables". In Windows search text field (bottom left of the screen) type envir > hit Enter. "System Properties" wizard is thrown.
    • Select the "Advanced" tab from the top bar > click Environment Variables.... "Environment Variables" wizard is thrown.
    • Double click the "Path" (or "PATH") Variable in the "System Variables" section. "Edit environment variable" wizard is thrown.
    • Copy C:\GL\SDLsrc\build\Debug > click New > Paste.
    • Click OK in all 3 wizards.
    • Close Visual Studio > in thrown wizard "Save changes to the following items?" click Save.
    • Restart your PC > open Visual Studio. In "Open recent" list, click "SDLsrc-0.sln", the first one. Now your project is open ready for test.
  3. Advertisement
Part 15
Part 15 of 21:

Testing project SDLsrc-0 and Correcting errors

  1. 1
    Test your project. Copy following code and paste in Main.cpp code area > in main menu select x64 > hit Ctrl+F5. If a black window with message "SDL initialization succeeded!" appears, then the project was set up correctly. You are now ready to program with SDL.
#include <iostream>
#include <SDL.h>
using namespace std;

int main(int argc, char * argv[])
{
	if (SDL_Init(SDL_INIT_EVERYTHING) < 0)
	{
		cout << "SDL initialization failed. SDL Error: " << SDL_GetError();
	}
	else
	{
		cout << "SDL initialization succeeded!";
	}

	cin.get();
	return 0;
}
  1. 1
    Correct errors. Files are missing. Copy C:\GLP\SDLsrc-0 and paste in File Explorer Address Bar. You should see file you added Main.cpp, and 4 other files added by Visual Studio. If they are missing you missed add file Main.cpp. Go to Part 12, step 2, and add it now.
    • In "Error List" if you see error
      • cannot open file SDL.h, go to Part 13, step 1, sub-step 2 Additional Include Directories, and follow instructions.
      • cannot open file SDL2.lib or SDL2main.lib, go to part 13, step 1, sub-step 3 Additional Library Directories and follow instructions. Also to sub-step 4 Configure Additional Dependencies.
      • "entry point must be defined" go to Part 13, step 1, sub-step 5 System, and follow instructions.
    • Thrown wizard about System or dll file go to previous Part steps 2 and 3, and follow instructions
    • For other errors. If you can't correct them, close Visual Studio > delete project folder SDLsrc-0 which lives in C:\GLP > open Visual Studio > repeat set up from Part 12. Good job.
    • TIP: Even if in Property Pages main settings it is Platform: x64, click Configuration manager... and in Active solution platform: select x64.
  2. Advertisement
Part 16
Part 16 of 21:

Creating Template-Project with compiled source code

  1. 1
    Create template. Go to Visual Studio and, while "SDLsrc-0" is open, click "Project" > "Export Template...". On "Export template Wizard" check "Project Template", if it's not checked. Click Next >.
  2. 2
    Create project. In Visual Studio main menu, select x64 > click File > New > Project....
    • In Create a new project wizard in the list of templates select SDLsrc-0 (if necessary scroll down the list) > click Next.
    • In Configure your new project wizard, if "Project name" is SDLsrc-01 it's okay. If it's not, type (or copy and paste) SDLsrc-01
      • Location should be C:\GLP. If it's not, delete anything, copy C:\GLP and paste.
      • Be sure Place solution and project in the same directory is checked.
      • Click Create.
    • In Visual Studio main menu, select x64 > hit Ctrl+F5. Good job
  3. 3
    TIP: Remember, in every project you create with this template, select x64 (next to Debug) in Visual Studio's GUI.
  4. Advertisement
Part 17
Part 17 of 21:

Choosing Set Up

  1. 1
    In this tutorial you learn 3 was to set up SDL in Project with Visual Studio.
    • Set up binaries x86 (32 bits). It's the easiest. You should start learning set up from here.
    • Set up binaries x64 (64 bits). It targets x64 platform. Choose it only when you are sure your project needs it.
    • Compile SDL source, and set up in project. Targets x64 too.The most difficult. The best though.
Part 18
Part 18 of 21:

Tips

  • General way for configure Additional Include Directories is that, after clicking first icon, click three dots ..., navigate to the folder where .h file(s) live(s) (C: > GL > SDL > include, in this tutorial) and click Select a folder.
  • General way for configure Additional Library Directories is that, after clicking first icon, click three dots ..., navigate to the folder where .lib file(s) live(s) (C: > GL > SDL > lib > x86, in this tutorial) and click Select a folder.
  • General way for configure Additional Dependencies is that,
    • In File Explorer navigate to folder where .lib file(s) live(s) (C: > GL > SDL > lib > x86, in this tutorial), click twice on the name of each .lib file and copy (by strike Ctrl+C) the name with its extension .lib.
    • Now go to Additional Dependencies wizard and paste it (by strike Ctrl+V). Type a semicolon (;).
    • If you want configure OpenGL with your project add opengl32.lib.
  • Place dll files for x32 platform into folder C:\Windows\SysWOW64, and for platform x64 in folder C:\Windows\System32.
Part 19
Part 19 of 21:

Setting up SDL, images, true type fonts, sound

  1. 1
    Create an SDL folder on your computer. You'll be downloading and unzipping several files, so it's good to keep them all in a single folder. Keep it simple—create the folder in the root of your C: or D: drive, e.g. C:\SDL.
  2. 2
    Download the latest version of SDL2 from http://libsdl.org/download-2.0.php. The file you need is the ZIP file containing the development libraries, so select SDL2-devel-2.0.12-VC.zip.[1]
  3. 3
    Unzip the files and move them to your SDL folder. Here's an easy way to do this:
    • Open your default Downloads folder and scroll to SDL2-devel-2.0.12-VC.zip.
    • Right-click SDL2-devel-2.0.12-VC.zip and select Extract Here.
    • Click Extract without changing the folder path. This unzips the files and displays a File Explorer window containing a folder called "SDL-2.0.12."
    • Double-click the new folder to open it. You'll see three folders and several files.
    • Highlight all of the files and sub-folders and press Control + X.
    • In the same File Explorer window, navigate to the SDL folder you created and double-click it to open it.
    • Right-click a blank area in the folder and select Paste. The files are now moved into the correct folder.
  4. 4
    Adding Media Support. Install the files necessary for including images in your program. If you'll be using any graphics in your program, you'll want to set up image file support for both X86 (32-bit) and X64 (64-bit) systems. To install the image support files:
    • Download and extract the file:
      • Go to https://www.libsdl.org/projects/SDL_image.
      • Below Development Libraries: find and download SDL2_image-devel-2.0.5-VC.zip.
      • Right-click the downloaded file called SDL2_image-devel-2.0.5-VC.zip and select Extract All.
      • Click Extract.
    • Move the SDL_image.h file to SDL's include folder.
      • In File Explorer navigate ... Downloads > SDL2_image-devel-2.0.5-VC.zip > SDL2_image-2.0.5 > include > click file SDL_image.h > right click > select Copy.
      • Go to C:\SDL\include > right click in blank area > Paste.
    • Move the x64 files to the appropriate folder.
      • Double-click the new folder called SDL2_image-2.0.5.
      • Double-click the lib folder and then the x64 folder.
      • Select all the folder's contents and press Ctrl + X.
      • In the same window, navigate to the SDL folder you created (e.g., C:\SDL").
      • Double-click the lib and then the x64 folder.
      • Right-click a blank area of the folder and click Paste.
    • Move the x86 files to the appropriate library folder.
      • Return to the Downloads folder and double-click the unzip SDL2_image-2.0.5 folder.
      • Double-click the lib folder and then the x86 folder.
      • Select all of the folder's contents and press Ctrl + X.
      • In the same window, navigate to the SDL folder you created (e.g., D:\SDL").
      • Double-click the lib and then the x86 folder.
      • Right-click a blank area of the folder and click Paste.
  5. 5
    Install the files necessary to support True Type fonts. Like with image support, you'll need to download libraries to support any True Type fonts you want to include in your program. And like image support, you'll have to copy the x86 and x64 files to their own library folders:
    • Download and unzip the file:
      • Go to https://www.libsdl.org/projects/SDL_ttf and, below Development Libraries: find and download the file called SDL2_ttf-devel-2.0.15-VC.zip.
      • Right-click SDL2_ttf-2.0.15 folder in your Downloads folder and select Extract All.
      • Click Extract.
    • Move SDL_ttf.h file to SDL's include folder.
      • Go to Downloads > SDL2_ttf-devel-2.0.15-VC.zip > SDL2_ttf-2.0.15 > include > click SDL2_ttf.h file > right click > select Copy.
      • Go to C:\SDL\include > right click > select Paste.
    • Move the x64 files to the appropriate library folder.
      • Double-click the SDL2_ttf-2.0.15 folder in your Downloads. You find it in unzip folder SDL2_ttf-devel-2.0.15-VC.
      • Double-click lib and then x64.
      • Select all the files and press Ctrl + X.
      • In the same File Explorer window, navigate to the SDL folder you created (e.g., C:\SDL").
      • Double-click the lib folder
      • Double-click the x64 folder.
      • Right-click a blank area of the folder and select Paste.
    • Move the x86 files to the appropriate library folder.
      • Return to the Downloads folder and double-click the SDL2_ttf-2.0.15.
      • Double-click the lib folder and then the x86 folder.
      • Select all of the folder's contents and press Ctrl + X.
      • In the same window, navigate to the SDL folder you created (e.g., C:\SDL).
      • Double-click the lib and then the x86 folder.
      • Right-click a blank area of the folder and click Paste.
  6. 6
    Install support for sound files. If you want any sounds in your program, you'll need sound support. The process is just like setting up image and True Type support.
    • Download and unzip:
    • Move the SDL2_mixer.h file into SDL's include folder.
      • Go to Downloads > SDL2_mixer-devel-2.0.4-VC.zip > SDL2_mixer-2.0.4 > include > click file SDL2_mixer.h > right click > select Copy.
      • Go to C:\SDL\include > in blank area right click > select Paste.
    • Move the x64 files to the appropriate library folder.
      • Double-click the SDL_mixer-2.0.4 folder in your Downloads.
      • Double-click lib and then x64.
      • Select all of the files and press Ctrl + X.
      • In the same File Explorer window, navigate to the SDL folder you created (e.g., C:\SDL").
      • Double-click the lib folder and then the x64 folder.
      • Right-click a blank area of the folder and select Paste.
    • Move the x86 files to the appropriate library folder.
      • Return to the Downloads folder and double-click the SDL_mixer-2.0.4.
      • Double-click the lib folder and then the x86 folder.
      • Select all of the folder's contents and press Ctrl + X.
      • In the same window, navigate to the SDL folder you created (e.g., C:\SDL).
      • Double-click the lib and then the x86 folder.
      • Right-click a blank area of the folder and click Paste.
  7. 7
    Setting Up a Visual Studio Project. Open Visual Studio 2019. You'll find it in your Start menu.
  8. 8
    Click Create a new project. It'll appear once Visual Studio launches.[2] .
  9. 9
    Create a new empty C++ project. To do this, search for "Empty Project" in the template search bar and click Empty Project (the one that's labeled with "C++") when it appears. Then, click Next to continue.
  10. 10
    Enter your project name and saving location. Name the project and choose a location to save it.[3] Also, check "Place solution and project in the same directory" on this screen.
  11. 11
    Click Create. It's at the bottom-right corner. This opens your empty project.
  12. 12
    Add your source files to the project. Here's how:
    • Right-click Source Files in the Solution Explorer window.
    • Select Add > New Item…
    • In the "Add New Item - Project-0" window, click C++ File (.cpp). Change the name if you'd like.
    • The "Location" should be C:\SDL\Project-0\ (or whatever path you're using). If it's not, click to the right of the field, navigate to the correct folder, and click Select folder.
    • Click Add to open the file in the main editor.
  13. 13
    Right-click the project and select Properties. You'll do this in the Solution Explorer window.
  14. 14
    Include the paths to SDL. Here's how:
    • Select All Platforms from the "Platform" menu at the top of the window.
    • Expand the C/C++ menu in the left panel and select General.[4]
    • In the right panel, click Additional Include Directories, down arrow at the end of the field, Edit.
    • At the top of the "Additional Include Directories" wizard, click the brown folder icon (the first icon), and then click ... next to the text box.
    • In the "Select Directory" window, navigate to C:\SDL (or wherever your SDL folder is), select the include folder, and then click Select Folder.
    • Click OK on the "Additional Include Directories" window.
    • Select x64 from the menu and click Yes, if prompted, to save.
    • Now, click Linker, General, Additional Library Directories in the right panel, the down arrow at the end of the field, and select Edit.
    • Click the brown folder icon, the ... and navigate to C:\SDL\lib (or wherever your SDL folder is), select the x64 folder, and then click Select Folder.
    • Click OK on the Additional Library Directories window.
    • Now select x86 (or win32) from the "Platform" menu. Click Yes to save if prompted.
    • Again, click Additional Library Directories in the right panel, the down arrow at the end of the field, and select Edit.
    • Click the brown folder icon, and then .
    • Navigate to C:\SDL\lib (or wherever your SDL folder is), select the x86 folder, and then click Select Folder.
    • Click OK on the Additional Library Directories window. Leave the properties window open, though.
  15. 15
    Add the library files. Here's how:
    • On the Properties window, select x86 (or win32) from the "Platform" menu and click Yes if prompted.
    • Expand the Linker menu in the left panel and select Input.
    • Click the Additional Dependencies option in the right panel, the down arrow at the end of the field, and select Edit.
    • Copy SDl2.lib; SDL2_mixer.lib; SDL2_ttf.lib; SDL2_image.lib; SDL2main.lib and paste into upper most text area of "Additional Dependencies" wizard.
    • Click OK.
    • Switch to the x64 platform using the Platform menu and click Yes if prompted.
    • Click the Additional Dependencies option in the right panel, the down arrow at the end of the field, and select Edit.
    • Copy SDl2.lib; SDL2_mixer.lib; SDL2_ttf.lib; SDL2_image.lib; SDL2main.lib and paste into upper most text area of "Additional Dependencies" wizard.
    • Click OK.
    • Click Apply at the bottom. Don't close the window.
  16. 16
    Copy the DLLs to the folder in which your program will run. You should still be your project's properties window:
    • Expand the Linker menu in the left panel and select System.
    • Switch to the x86 (or Win32) platform.
    • In the right panel, click SubSystem.
    • Click the down-arrow and select Console (/SUBSYSTEM:CONSOLE).
    • Click Apply.
    • Switch to the x64 platform.
    • Click the down-arrow and select Console (/SUBSYSTEM:CONSOLE) again. Click Apply and then OK.
    • Press Windows key + E to open the File Explorer.
    • Navigate to C:\SDL\lib\x64 (unless you're using a 32-bit version of Windows, in which case, use the x86 folder). When you're there, select all of the .DLL files you'll need for this project (at the very list, SDL2.dll—but if you're using images, sdl2_image.dll, etc.) and select Copy.
    • Navigate to C:\SDL\Project-0 (or whatever your project folder is called). When there, right-click a blank location in the folder and select Paste.
  17. 17
    Test your project. Copy following code and paste in Source.cpp code area. In Visual Studio main menu switch to x64. Hit Ctrl+F5. If a black window with the message "SDL initialization succeeded!" appears, then the project was set up correctly. You are now ready to program with SDL.
  18. Advertisement
 
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>
#include <SDL_mixer.h>
#include <iostream>
using namespace std;

int main(int argc, char * argv[])
{
	if (SDL_Init(SDL_INIT_EVERYTHING) < 0)
	{
		cout << "SDL initialization failed. SDL Error: " << SDL_GetError();
	}
	else
	{
		cout << "SDL initialization succeeded!";
	}

	cin.get();
	return 0;
}
Part 20
Part 20 of 21:

Correcting errors

  1. 1
    Fix the error "Cannot open file SDL.h." If you see this error, return to the project's properties, and double-check the folders in "Additional include Directories.
  2. 2
    Fix the error "cannot open file SDL2.lib or SDL2main.lib." Make sure all directories are correct in properties and that you've added all library files to Linker > Input > Additional Dependencies.
  3. 3
    Fix the error "entry point must be defined." Return to Linker > System and make sure the Subsystem value is correct.
  4. 4
    Fix the error "file SDL2.dll is missing." Make sure SDL2.dll is pasted into your project's folder.
  5. Advertisement
Part 21
Part 21 of 21:

Creating a Template from Your Project

  1. 1
    Click the Project menu in Visual Studio. Now that you've created a project, it can be helpful to save it as a template that you can use to create new projects with all necessary paths set up and ready to use.[5]
  2. 2
    Click Export Template on the menu. This opens the Export Template wizard.
  3. 3
    Select "Project template" and click Next.
  4. 4
    Enter your template options. Here you'll enter a name for the template, a description, icon, and preview image. Give the template a name like "SDL" or "SDL template" so you know what it's for everything you select will appear in the dialog window when you create a new project from a template.
    • If you don't want to load the template into VS immediately, remove the checkmark from "Automatically import the template into Visual Studio."
  5. 5
    Click Finish to create the template. This saves the template to a ZIP file in the "My Exported Templates" folder, which you'll find in your user folder under \Documents\Visual Studio 2019\Templates\Project Templates.
  6. Advertisement

Community Q&A

  • Question
    What does unresolved external symbol "referenced in" mean?
    Bryan Hadland
    Bryan Hadland
    Community Answer
    An unresolved external symbol means that you have not setup the project fully. By this I mean make sure you have linked against the library that your using.
  • Question
    I'm using 64-bit Windows. Method 4, Step 2, "Configure the linker 'Additional Library Directories'," mentioned selecting x86. Since I'm using 64-bit, can I choose x64?
    Community Answer
    Community Answer
    You can use x86 platform (32 bits) with Windows 64-bit. However if you need x64 do this: Create a new empty project. Follow the article's instructions with these changes: 1. In Project's Property Pages wizard 1.1. In ''Platform:'' entry, choose ''x64" 1.2. Click [Configuration manager...], 1.2.1. In ''Active solution platform:'' select x64, 1.2.2. In ''Platform'' entry choose x64. Click [Close]. 1.3. In "Linker" > "General" > "Additional Librariy Directories'' > down arrow at the end of the field > Edit.. > three dots > in "Select Directory" window, navigate to C:\SDL\SDL2\lib\x64, and click [Select a folder]. 2. In Windows File Explorer navigate to C:\SDL\SDL2\lib\x64 and copy file SDL2.dll. Paste in your project folder.
Advertisement

About This Article

Nicole Levine, MFA
Written by:
wikiHow Technology Writer
This article was co-authored by wikiHow staff writer, Nicole Levine, MFA. Nicole Levine is a Technology Writer and Editor for wikiHow. She has more than 20 years of experience creating technical documentation and leading support teams at major web hosting and software companies. Nicole also holds an MFA in Creative Writing from Portland State University and teaches composition, fiction-writing, and zine-making at various institutions. This article has been viewed 106,879 times.
How helpful is this?
Co-authors: 20
Updated: March 21, 2023
Views: 106,879
Advertisement