irap_noroslib links zero ROS libraries and pulls in no third-party packages. Everything it needs ships with a standard C++ toolchain — that is the whole point of the library.
- A C++17 compiler — g++ ≥ 7, clang ≥ 5, or MSVC 2017+.
- The platform's sockets + threads, which are part of the OS/toolchain, not
a package you install:
- Linux / macOS / WSL — POSIX sockets (libc) + pthreads → link
-pthread. - Windows (MinGW) — Winsock2 → link
-lws2_32. - Windows (MSVC) — Winsock2 is auto-linked via
#pragma comment(lib, "ws2_32"); nothing to add.
- Linux / macOS / WSL — POSIX sockets (libc) + pthreads → link
That is the complete list. No Boost, no ROS, no console_bridge, no message libraries, no CMake-time codegen.
-
CMake ≥ 3.10 — drives
cmake -S . -B build && cmake --build build -j. You do not need CMake to use irap_noroslib: copyinclude/irap_noroslib.hppinto your project and compile a single.cppby hand, e.g.# Linux / macOS / WSL g++ -std=c++17 -pthread your_app.cpp irap_noroslib_impl.cpp -o your_app # Windows, MinGW g++ -std=c++17 your_app.cpp irap_noroslib_impl.cpp -o your_app.exe -lws2_32
<atomic> <chrono> <cstdint> <cstdlib> <cstring> <functional> <map> <memory> <mutex> <string> <thread> <vector> plus the platform socket headers
(<sys/socket.h> … on POSIX, <winsock2.h> on Windows) — all part of a
conforming C++17 install.