raylib libc dependency - raysan5/raylib GitHub Wiki
raylib is a C library and inevitably it depends on some implementation of C standard library (libc).
While working on raylib 3.0 I took some time to analyze that dependency in detail, no plans to remove it (maybe minimize it a bit) but I think it could be useful to have the knowledge where it is required.
stdlib.h
module |
libc function |
raylib function |
core |
srand() |
InitTimer() |
core |
abs()rand() |
GetRandomValue() |
core |
atexit() |
InitKeyboard()InitTerminal() |
shapes |
fabs() |
CheckCollisionCircleRec()GetCollisionRec() |
utils |
exit() |
TraceLog() |
stdio.h
module |
libc function |
raylib function |
utils |
sprintf() |
TraceLog() |
utils |
fprintf() |
SaveFileText() |
utils |
fopen()fseek()fread()fwrite()fclose() |
LoadFileData()SaveFileData()LoadFileText()SaveFileText() |
string.h
module |
libc function |
raylib function |
core |
strlen() |
GetFileNameWithoutExt()GetDirectoryPath()GetPrevDirectoryPath()OpenURL()InitEvdevInput() |
core |
strrchr() |
GetExtension()EventThreadSpawn() |
core |
strcmp() |
IsGamepadName() |
text |
strcmp() |
TextIsEqual() |
text |
strcpy() |
TextAppend()TextReplace() |
text |
strncpy() |
TextToUtf8()TextReplace() |
text |
strcat() |
TextJoin() |
text |
strstr() |
several funcs. |
textures |
strlen() |
ImageTextEx() |
raudio |
strcmp() |
IsFileExtension() |
math.h
module |
libc function |
raylib function |
models, shapes, camera |
sinf()asinf()cosf()acosf()sqrtf()atan2f() |
several funcs. |
raymath |
sinf()cosf()acosf()tan()fabs()sqrtf()fminf()fmaxf() |
several funcs. |
core |
tan()atan2() |
BeginMode3D(), InitVrSimulator() |
text |
sqrtf() |
GenImageFontAtlas() |
stdarg.h
module |
libc function |
raylib function |
text |
va_list, va_start(), vsprintf(), va_end() |
TextFormat() |
utils |
va_list, va_start(), vsprintf(), va_end() |
TraceLog() |
Considering the size of raylib, there is not much dependency on libc... that's an interesting consideration for embedded devices development where custom libc implementations could be used.