Skip to content

RaphaelCausse/cuds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUDS - C Utilities and Data Structures

CUDS is a generic C library providing common data structures, utilities, and helper modules for C projects.


Table of Contents

  1. Project Structure
  2. Requirements
  3. Modules
  4. Build
  5. Install
  6. Usage
  7. Authors

Project Structure

cuds/
├── include/    # Public headers
│   └── cuds/
│       ├── *.h
│       └──...
│
├── src/        # Source files
│   ├── Makefile
│   ├── module1/
│   │   ├── *.c
│   │   └── *.h
│   └──...
│
├── lib/        # Static / shared libraries (generated)
├── make/       # Makefile utilities
├── Makefile    # Top-level Makefile
└── README.md

Requirements

  • C99-compatible compiler (GCC, Clang, MSVC with C99 support)
  • GNU Make
  • For Windows: MSYS2 + MinGW (ucrt64 or mingw64 recommended)

Modules

  • result : A generic result type for error handling

Build

Linux

# Static library (release)
make static

# Shared library (release)
make shared

# Debug build
make static-debug
make shared-debug

# Help
make help

Windows (MSYS2 / MinGW)

Add the MSYS2 UCRT64 bin path to your PATH environment variable.

Building is then the same as on Linux.


Install

  1. Clone the project
  2. Build the project (see Build)
  3. Copy the generated include/ folder (containing cuds public headers) to your project's include folder
  4. Copy the generated lib/ folder (containing libcuds.a or libcuds.so / cuds.dll) to your project's lib folder

Usage

Include the public headers in your project:

#include "cuds/cuds.h"  // Main header
// or
#include "cuds/result.h"  // Specific headers

Link with the generated library:

gcc -I/path/to/project/include -L/path/to/project/lib -lcuds myprogram.c -o myprogram

Authors

Raphael CAUSSE (raphael.causse2@gmail.com)

About

C Utilities and Data Structures library.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published