None of the functions seem to be marked static or inline. Isn't this an instant link error once you include the same header in two different translation units?

Seems like there’s #ifdef _CLIB_IMPL to control that, but I’m still missing the point.

The point is unwillingness to learn how to work with compiler toolchains and package repos, while imposing longer compile times on everyone.

Could you show an example of how you'd package this code?

https://github.com/ocornut/imgui

> Just copy paste the source code in your source tree

And/Or make a simple CMakeLists.txt like this:

  cmake_minimum_required(VERSION 3.22.0)
  project(mylib C)

  file(GLOB_RECURSE MYLIB_SOURCES
    ${PROJECT_SOURCE_DIR}/src/*.c
  )

  file(GLOB_RECURSE MYLIB_HEADERS
    ${PROJECT_SOURCE_DIR}/include/*.h
  )

  add_library(${PROJECT_NAME} STATIC ${MYLIB_HEADERS} ${MYLIB_SOURCES})

  target_include_directories(${PROJECT_NAME}
    PRIVATE "${PROJECT_SOURCE_DIR}/include"
  )