Library

  1. libc: The standard C library, which provides core functionalities like string manipulation, mathematical operations, and input/output processing. It is a fundamental part of the C language ecosystem and is typically included by default in C and C++ compilers.
    1. glibc (GNU C Library): This is the most common and feature-rich libc library used in many Linux distributions. It is known for its wide range of features and excellent compatibility with various software. However, it is larger in size compared to musl libc, which can be a drawback for systems with limited resources.
    2. musl libc: This is a lightweight libc library that aims to be fast, small, and correct. It is designed for static linking, which makes it a popular choice for containers and embedded systems. However, because it is smaller and less feature-rich than glibc, some software may not work correctly or at all with musl libc.
  2. libglib: GLib is a general-purpose utility library, which provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on. It's written in C.
  3. libm: This is the mathematical library in C. It provides various mathematical functions like power, logarithm, trigonometric functions, etc.
  4. libpthread: This library provides functions for creating and managing threads (a way of doing concurrent programming in C).
  5. libdl: This library provides functions for dynamically loading libraries at runtime.
  6. librt: This library provides various functionalities related to real-time programming such as timers, inter-process communication, and asynchronous I/O.
  7. libssl and libcrypto: These libraries are part of OpenSSL and provide functions for secure network communication.
  8. librepo: A library providing C and Python (libcURL like) API for downloading Linux repository metadata and package.
  9. libsolv: A free package dependency solver using a satisfiability algorithm for solving packages and reading repositories.
  10. libvips: This is a demand-driven, horizontally threaded image processing library. It's not a standalone C library but it's written in C.
  11. busybox: BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. It's written in C.

Compiler

  1. GCC: Stands for GNU Compiler Collection for languages including C, C++, Objective-C, Fortran, Ada, and Go among others.
    1. It supports a wider range of platforms and architectures.
    2. Is under the GPL license
  2. Clang:
    1. Clearer and concise error and warning messages
    2. Generally faster at compiling code
    3. Is part of the LLVM project which includes a wider set of tools like static analysers.
    4. Is under a more permissive license, which allows for more freedom in terms of code distribution and integration into proprietary software