Skip to content

Instantly share code, notes, and snippets.

@aaangeletakis
Last active January 14, 2025 12:13
Show Gist options
  • Save aaangeletakis/3187339a99f7786c25075d4d9c80fad5 to your computer and use it in GitHub Desktop.
Save aaangeletakis/3187339a99f7786c25075d4d9c80fad5 to your computer and use it in GitHub Desktop.
How do I install SDL on ubuntu?

What you need to do to install SDL is:

#install sdl2
sudo apt install libsdl2-dev libsdl2-2.0-0 -y;

#install sdl image  - if you want to display images
sudo apt install libjpeg-dev libwebp-dev libtiff5-dev libsdl2-image-dev libsdl2-image-2.0-0 -y;

#install sdl mixer  - if you want sound
sudo apt install libmikmod-dev libfishsound1-dev libsmpeg-dev liboggz2-dev libflac-dev libfluidsynth-dev libsdl2-mixer-dev libsdl2-mixer-2.0-0 -y;

#install sdl true type fonts - if you want to use text
sudo apt install libfreetype6-dev libsdl2-ttf-dev libsdl2-ttf-2.0-0 -y;

use

`sdl2-config --cflags --libs` -lSDL2 -lSDL2_mixer -lSDL2_image -lSDL2_ttf

to link them, for example:

g++ myProgram.cpp -o myProgram `sdl2-config --cflags --libs` -lSDL2 -lSDL2_mixer -lSDL2_image -lSDL2_ttf

if you would like to install all the packages at once, copy and paste this into your terminal

#Oneliner to do the above install
sudo apt update && bash <(wget -qO - https://boredbored.net/sdl2-install)
@omonimus1
Copy link

omonimus1 commented Jul 30, 2020

Very useful, thank you a lot!

@vmabuza
Copy link

vmabuza commented Aug 4, 2020

I get the following error when I try to compile smc

`$ ./configure
checking build system type... x86_64-unknown-linux-gnu

checking host system type... x86_64-unknown-linux-gnu

checking target system type... x86_64-unknown-linux-gnu

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /usr/bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking for g++... g++

checking for C++ compiler default output file name... a.out

checking whether the C++ compiler works... yes

checking whether we are cross compiling... no

checking for suffix of executables...

checking for suffix of object files... o

checking whether we are using the GNU C++ compiler... yes

checking whether g++ accepts -g... yes

checking for style of include used by make... GNU

checking dependency style of g++... gcc3

checking for main in -lboost_filesystem... yes

checking for main in -lGL... yes

checking for main in -lGLU... yes

checking for pkg-config... /usr/bin/pkg-config

checking pkg-config is at least version 0.9.0... yes

checking for SDL... yes

checking for png_init_io in -lpng... yes

checking for IMG_LoadPNG_RW in -lSDL_image... no

configure: error: SDL_image library with PNG support not found
`

I ran

$ sudo apt install libpng-dev

but I still get the same error, can someone please help me install the PNG libraries.

@aaangeletakis
Copy link
Author

What is SMC?
@vmabuza

@NoahAncolie
Copy link

THAnks ! A lot!

@aaangeletakis
Copy link
Author

Copy link

ghost commented Feb 16, 2021

I made a Bash script out of this: https://github.com/d26900/Scripts/blob/main/setup.sh

Run it like so: sudo bash setup.sh

If you just want to install the SDL libraries, comment out the other run_installs with a #.
The only thing you need is: run_installs "apt install" "-y" "${apts_sdl[@]}"

@aaangeletakis
Copy link
Author

How is this different from the script I made?
bash <(wget -qO - https://boredbored.net/sdl2-install)

@wpichl
Copy link

wpichl commented Feb 16, 2021

works! thank you! had sum errors but you fixed it!

@aaangeletakis
Copy link
Author

:P

Copy link

ghost commented Feb 19, 2021

How is this different from the script I made?
bash <(wget -qO - https://boredbored.net/sdl2-install)

I wasn't aware of your script, but yours is more concise & short. I designed my Bash script to be more adjustable for different kinds of installs (apt, npm, pip etc.). All you need to do is add the package name to a list pips=("numpy", ...) and then call the run_installs function like so:

run_installs "pip3 install" "" "${pips[@]}"

The first argument is the command, the second argument is an option and the last argument is the list of packages/modules you want to install all at once. Here's another example:

run_installs "apt install" "-y" "${apts_sdl[@]}"

Same structure: <commands> <options> <packages>

Then you need that script as sudo bash setup.sh. Done!

@GH4169
Copy link

GH4169 commented Aug 1, 2023

Thankful!

@01Barthez
Copy link

Thanks for this summary, it avoids going up and down all over the net.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment