Compare

cdxgen vs lynkctl: SBOM for embedded C/C++

cdxgen is a strong choice for most software stacks. Embedded C/C++ firmware is harder, because the dependencies usually are not in a package manifest at all.

cdxgen is a fast, widely used generator and the official CycloneDX tool. Across Node, Python, Java, Go, and containers, it does the job well.

Firmware is a different shape of problem. A typical embedded C/C++ build pulls from a Makefile or CMake or IAR project, vendor SDKs, copied-in libraries, and prebuilt static archives, and much of the dependency information lives in the build itself rather than in a manifest. lynkctl covers those mainstream manifest ecosystems too, so this comparison focuses on embedded C/C++, where the two tools differ most.

Get Started

Get Started

Please fill out your details and we'll get back to you within 24 hours.

Please fill out your details and we'll get back to you within 24 hours.

Trusted by security and compliance teams at 100+ regulated companies in

MedTech
SaMD
AI SaMD
FinTech
OT
Energy
eSports
Consumer SaaS
MedTech

Trusted by 100+ in

MedTech
SaMD
AI SaMD
FinTech
OT
Energy
eSports
Consumer SaaS
MedTech

Features

Approach

Toolchain support

STM32CubeMX .ioc

Linker-map aware

Vendored source (lwIP, mbedTLS copied in)

Static .a archives

Inventory scope

Language coverage

Output formats

Runtime

License

lynkctl

Build-aware + manifests

Reads embedded C/C++ builds, plus manifest ecosystems

Native

GNU Make, CMake, IAR, TI Code Composer Studio

✅

Target and package context from .ioc

✅

Sees what actually linked into the image

Curated-index match

Identifies copied-in components

Build + link correlation

Beyond the filename

Compiled and linked only

Dead-strip and LTO aware; scoped to the target

Manifest ecosystems + embedded

12 providers: Node, Python, Java, Go, Rust, Ruby, PHP, .NET, Gradle, Gleam, plus build-grounded C/C++

CycloneDX + SPDX

CycloneDX 1.6+ and SPDX 3+, schema-validated

Air-gapped

Zero network calls; runs fully offline

Commercial

from Interlynk

cdxgen

Manifest-based

Package manifests across many ecosystems

Generic C/C++

-t c, best with a real build, needs Java 21

🚫

Not parsed

🚫

Not used

Manifest-dependent

May be missed if undeclared

Filename only

Limited further context

Whole vendor directory

Can overstate the build

Broad languages + containers

Many ecosystems and container images

CycloneDX

CycloneDX only

Online by default

Often fetches license/vuln data

Open source

free, self-run

cdxgen vs. lynkctl

cdxgen vs. lynkctl

cdxgen vs. lynkctl

Approach

lynkctl

Build-aware + manifests

Reads embedded C/C++ builds, plus manifest ecosystems

cdxgen

Manifest-based

Package manifests across many ecosystems

Toolchain support

Native

GNU Make, CMake, IAR, TI Code Composer Studio

Generic C/C++

-t c, best with a real build, needs Java 21

STM32CubeMX .ioc

✅

Target and package context from .ioc

🚫

Not parsed

Linker-map aware

✅

Sees what actually linked into the image

🚫

Not used

Vendored source (lwIP, mbedTLS copied in)

lynkctl — Curated-index match: identifies copied-in components

cdxgen — Manifest-dependent: may be missed if undeclared

Static .a archives

lynkctl — Build + link correlation: beyond the filename

cdxgen — Filename only: limited further context

Inventory scope

lynkctl — Compiled and linked only: dead-strip and LTO aware; scoped to the target

cdxgen — Whole vendor directory: can overstate the build

Language coverage

lynkctl — Manifest ecosystems + embedded: 12 providers plus build-grounded C/C++

cdxgen — Broad languages + containers: many ecosystems and container images

Output formats

lynkctl — CycloneDX + SPDX: CycloneDX 1.6+ and SPDX 3+, schema-validated

cdxgen — CycloneDX: CycloneDX only

Runtime

lynkctl — Air-gapped: zero network calls; runs fully offline

cdxgen — Online by default: often fetches license/vuln data

License

lynkctl — Commercial, from Interlynk

cdxgen — Open source, free, self-run

ALTERNATIVES

ALTERNATIVES

ALTERNATIVES

Other embedded SBOM tools

If you are weighing options for firmware SBOMs, these come up alongside cdxgen and lynkctl.

lynkctl

EMBEDDED + MANIFEST

Build-aware SBOMs for embedded C/C++ with Make, CMake, IAR, and TI CCS, plus 12 manifest ecosystems. CycloneDX and SPDX, runs air-gapped, with linker-map and vendored-source detection.

Syft

CONTAINERS + PACKAGES

Popular open-source generator from the Anchore team, strongest for containers and package ecosystems.

Trivy

SCANNING

Widely used open-source scanner and SBOM generator for containers and package-based projects.

RunSafe Security

FIRMWARE

SBOM and memory-safety protection aimed at C/C++ and embedded systems.

Manifest Cyber

SBOM MANAGEMENT

SBOM management and software supply-chain security platform.

Innomatica embtrace

OSS EMBEDDED

Open-source SBOM generator for embedded builds: CMake, Yocto, Buildroot, and Zephyr.

Empire State Building sketch

DECISION

The honest version

cdxgen handles most projects fine. It gets thin on firmware, where the real dependencies are copied into the source tree or buried in static archives a manifest never describes. lynkctl was built to pull those out of the actual build.

For the full detail on why firmware is hard, see The State of SBOM Generation for C/C++. For a cdxgen walkthrough, see How to Generate a CycloneDX SBOM with cdxgen.

Empire State Building sketch

DECISION

The honest version

cdxgen handles most projects fine. It gets thin on firmware, where the real dependencies are copied into the source tree or buried in static archives a manifest never describes. lynkctl was built to pull those out of the actual build.

For the full detail on why firmware is hard, see The State of SBOM Generation for C/C++. For a cdxgen walkthrough, see How to Generate a CycloneDX SBOM with cdxgen.

Empire State Building sketch

DECISION

The honest version

cdxgen handles most projects fine. It gets thin on firmware, where the real dependencies are copied into the source tree or buried in static archives a manifest never describes. lynkctl was built to pull those out of the actual build.

For the full detail on why firmware is hard, see The State of SBOM Generation for C/C++. For a cdxgen walkthrough, see How to Generate a CycloneDX SBOM with cdxgen.

FAQs

More questions? Contact us now.

Does cdxgen support C/C++?

Yes. cdxgen supports C/C++ with -t c and Java 21, and it works best when it can inspect a real build. Results can be thinner for projects with copied-in dependencies, prebuilt static archives, or hand-written Makefiles that expose little dependency metadata.

Is lynkctl only for embedded C/C++?

No. lynkctl generates build-aware SBOMs for embedded C/C++, and it also covers 12 manifest ecosystems, including Node, Python, Java, Go, Rust, Ruby, PHP, and .NET. It emits both CycloneDX 1.6+ and SPDX 3+, and it runs fully offline.

Can I use cdxgen and lynkctl together?

Yes, and many teams do. Run cdxgen for general-purpose applications and lynkctl for embedded firmware. Both produce CycloneDX, so the results live in the same Interlynk inventory.

Is lynkctl open source?

lynkctl is Interlynk’s commercial generator. The lynkctl-public repository has the documentation, CI templates, and benchmark methodology, and Interlynk’s open-source toolkit adds tools such as sbomqs and sbomasm.

Which toolchains does lynkctl support?

GNU Make, CMake, IAR Embedded Workbench, and TI Code Composer Studio, plus STM32CubeMX .ioc metadata for target and package context. It supports STM32, Infineon, and NXP MCUs today, with more on the roadmap.

Trusted by security and compliance teams at 100+ regulated companies

Audit-ready SBOM. With every build.

Interlynk automates SBOMs, manages open source risks, monitors suppliers, and prepares you for the post-quantum era, all in one trusted platform.

Trusted by security and compliance teams at 100+ regulated companies

Audit-ready SBOM. With every build.

Interlynk automates SBOMs, manages open source risks, monitors suppliers, and prepares you for the post-quantum era, all in one trusted platform.

Trusted by security and compliance teams at 100+ regulated companies

Audit-ready SBOM. With every build.

Interlynk automates SBOMs, manages open source risks, monitors suppliers, and prepares you for the post-quantum era, all in one trusted platform.