mirror of
https://github.com/raysan5/raylib.git
synced 2025-12-25 10:22:33 -05:00
finished the guide
@ -12,3 +12,92 @@ Optionally, you could use **CMake** building system.
|
||||
|
||||
sudo apt install cmake
|
||||
|
||||
#### Install required libraries
|
||||
For raylib to compile, you will need some additional libraries installed
|
||||
sudo apt install mesa-common-dev libx11-dev libgl1-mesa-dev
|
||||
|
||||
### Build raylib using make
|
||||
You can compile three different types of raylib library:
|
||||
|
||||
* The static library (default method)
|
||||
* The dynamic shared library (often used on Linux)
|
||||
* The web library
|
||||
|
||||
Download the raylib repository from [Github](https://github.com/raysan5/raylib), then compile it with:
|
||||
|
||||
git clone https://github.com/raysan5/raylib.git raylib
|
||||
cd raylib/src/
|
||||
make PLATFORM=PLATFORM_DESKTOP # To make the static version.
|
||||
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED # To make the dynamic shared version.
|
||||
make PLATFORM=PLATFORM_WEB # To make web version.
|
||||
|
||||
**Warning:** if you want to compile a different type of library (static, ...), you must type `make clean` before the compiling.
|
||||
|
||||
Install the library to the standard directories, `usr/local/lib` and `/usr/local/include`, or remove it:
|
||||
|
||||
sudo make install # Static version.
|
||||
sudo make install RAYLIB_LIBTYPE=SHARED # Dynamic shared version.
|
||||
|
||||
sudo make uninstall
|
||||
sudo make uninstall RAYLIB_LIBTYPE=SHARED
|
||||
|
||||
_NOTE:_ raylib is configurable and can be be built in a variety of ways. Please read [`src/Makefile`](https://github.com/raysan5/raylib/blob/master/src/Makefile), [`src/config.h`](https://github.com/raysan5/raylib/blob/master/src/config.h) and [`raylib.h`](https://github.com/raysan5/raylib/blob/master/src/raylib.h) itself for a full listing of available options and values.
|
||||
|
||||
### Build raylib using CMake
|
||||
|
||||
Building with cmake on Linux is easy, just use the following:
|
||||
```
|
||||
git clone https://github.com/raysan5/raylib.git raylib
|
||||
cd raylib
|
||||
mkdir build && cd build
|
||||
cmake -DBUILD_SHARED_LIBS=ON ..
|
||||
make
|
||||
sudo make install
|
||||
```
|
||||
In case any dependencies are missing, cmake will tell you.
|
||||
|
||||
_NOTE:_ raylib is configurable and can be be built in a variety of ways. See the [CMake Build Options](https://github.com/raysan5/raylib/wiki/CMake-Build-Options) for a full listing of available options and values. Alternatively, you may use the curses UI provided by `ccmake(1)` for interactively configuring raylib.
|
||||
|
||||
## Building Examples
|
||||
|
||||
If you have installed raylib with `make install`, Just move to the folder `raylib/examples` and run:
|
||||
|
||||
make PLATFORM=PLATFORM_DESKTOP
|
||||
|
||||
If raylib was installed with `make install RAYLIB_LIBTYPE=SHARED`
|
||||
|
||||
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED
|
||||
|
||||
A more detailed command for the OpenGL ES GRAPHICS variant on Ubuntu 16.04 is:
|
||||
|
||||
make PLATFORM=PLATFORM_DESKTOP GRAPHICS=GRAPHICS_API_OPENGLES_20 RAYLIB_LIBTYPE=SHARED USE_EXTERNAL_GLFW=TRUE \
|
||||
CFLAGS="-fPIC -I/usr/include/GL" LDFLAGS='-L/usr/local/lib/raysan5 -lGLESv2 -lglfw3'
|
||||
|
||||
To compile just one specific example, add flags as needed:
|
||||
|
||||
make core/core_basic_window PLATFORM=PLATFORM_DESKTOP
|
||||
|
||||
To force recompile one example:
|
||||
|
||||
make core/core_basic_window PLATFORM=PLATFORM_DESKTOP -B
|
||||
|
||||
The `raylib/games` folder can be made the same way as the examples. Have fun!
|
||||
|
||||
|
||||
### Link raylib with system GLFW
|
||||
|
||||
Instead of using the embedded GLFW, you can download GLFW3 and build it from source (it requires CMake).
|
||||
|
||||
wget https://github.com/glfw/glfw/releases/download/3.2.1/glfw-3.2.1.zip
|
||||
unzip glfw-3.2.1.zip
|
||||
cd glfw-3.2.1
|
||||
cmake -DBUILD_SHARED_LIBS=ON
|
||||
sudo make install
|
||||
|
||||
Now with GLFW installed, you may build raylib while specifying `USE_EXTERNAL_GLFW`:
|
||||
|
||||
```
|
||||
make USE_EXTERNAL_GLFW=TRUE
|
||||
# or
|
||||
cmake -DUSE_EXTERNAL_GLFW=ON
|
||||
```
|
||||
Reference in New Issue
Block a user