5.5 KiB
Raylib-Quickstart
A simple cross platform template for setting up a project with the bleeding edge raylib code. Works with C or C++.
Supported Platforms
Quickstart supports the main 3 desktop platforms:
- Windows
- Linux
- MacOS
Naming projects
Do not name your game project 'raylib', it will conflict with the raylib library.
VSCode Users (all platforms)
Note You must have a compiler toolchain installed in addition to vscode.
- Download the quickstart
- Rename the folder to your game name
- Open the folder in VSCode
- Run the build task ( CTRL+SHIFT+B or F5 )
- You are good to go
Windows Users
There are two compiler toolchains available for windows, MinGW-W64 (a free compiler using GCC), and Microsoft Visual Studio
Using MinGW-W64
- Double click the
build-MinGW-W64.batfile - CD into the folder in your terminal
- if you are usiing the W64devkit and have not added it to your system path environment variable, you must use the W64devkit.exe terminal, not CMD.exe
- If you want to use cmd.exe or any other terminal, please make sure that gcc/mingw-W64 is in your path environment variable.
- run
make - You are good to go
Note on MinGW-64 versions
Make sure you have a modern version of MinGW-W64 (not mingw). The best place to get it is from the W64devkit from https://github.com/skeeto/w64devkit/releases or the version installed with the raylib installer
If you have installed raylib from the installer
Make sure you have added the path
C:\raylib\w64devkit\bin
To your path environment variable so that the compiler that came with raylib can be found.
DO NOT INSTALL ANOTHER MinGW-W64 from another source such as msys2, you don't need it.
Microsoft Visual Studio
- Run
build-VisualStudio2022.bat - double click the
.slnfile that is generated - develop your game
- you are good to go
Linux Users
- CD into the build folder
- run
./premake5 gmake - CD back to the root
- run
make - you are good to go
MacOS Users
- CD into the build folder
- run
./premake5.osx gmake - CD back to the root
- run
make - you are good to go
Output files
The built code will be in the bin dir
Working directories and the resources folder
The example uses a utility function from path_utils.h that will find the resources dir and set it as the current working directory. This is very useful when starting out. If you wish to manage your own working directory you can simply remove the call to the function and the header.
Changing to C++
Simply rename src/main.c to src/main.cpp and re-run the steps above and do a clean build.
Using your own code
Simply remove src/main.c and replace it with your code, and re-run the steps above and do a clean build.
Adding External Libraries (e.g., tinyfiledialogs)
Quickstart is intentionally minimal — it only includes what is required to compile and run a basic raylib project.
If you want to use extra libraries (like tinyfiledialogs, stb libs, audio libs, etc.), you must update your premake5.lua file and add the correct system dependencies yourself.
This keeps the template lightweight and avoids forcing every user to include libraries they might never use.
Where to add dependencies
External libraries must be added inside the correct platform filter in your premake5.lua file:
filter "system:windows"
defines{"_WIN32"}
links {"winmm", "gdi32", "opengl32"}
libdirs {"../bin/%{cfg.buildcfg}"}
filter "system:linux"
links {"pthread", "m", "dl", "rt", "X11"}
filter "system:macosx"
links {
"OpenGL.framework",
"Cocoa.framework",
"IOKit.framework",
"CoreFoundation.framework",
"CoreAudio.framework",
"CoreVideo.framework",
"AudioToolbox.framework"
}
Example: tinyfiledialogs on Windows
tinyfiledialogs requires extra Windows system libraries. To use it, add them inside your Windows filter:
filter "system:windows"
links {
"Comdlg32",
"User32",
"Ole32",
"Shell32"
}
Cross-platform reminder
If you add a library, make sure to add its required dependencies for all platforms you plan to support (Windows, Linux, MacOS). Every library documents what each OS needs.
Building for other OpenGL targets
If you need to build for a different OpenGL version than the default (OpenGL 3.3) you can specify an OpenGL version in your premake command line. Just modify the bat file or add the following to your command line
For OpenGL 1.1
--graphics=opengl11
For OpenGL 2.1
--graphics=opengl21
For OpenGL 4.3
--graphics=opengl43
For OpenGLES 2.0
--graphics=opengles2
For OpenGLES 3.0
--graphics=opengles3
License
Copyright (c) 2020-2025 Jeffery Myers
This software is provided "as-is", without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
-
The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-
Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-
This notice may not be removed or altered from any source distribution.