Creating a Library Project - Creating a Library Project - 2026.1 English - UG1400

Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400)

Document_ID
UG1400
Release_Date
2026-07-31
Version
2026.1 English

Creating a Software Library Component

A software library component packages reusable compiled code for application components in the same workspace. A library component does not define a main() entry point and produces linkable artifacts instead of a runnable executable.

The Vitis Unified IDE supports:

  • Static library components for bare-metal domains
  • Dynamic library components for Linux domains

Supported processor scope:

  • Static libraries (bare-metal): Arm, MicroBlaze, and RISC-V processor domains
  • Dynamic libraries: Linux processor domains

Creating a Static Library Component (Bare-metal)

To create a static library component, select File > New Component > Static Library.

  1. Enter the component name and location, then click Next.
  2. Select a fixed platform, then click Next.
  3. Select the hardware target, then click Next.
  4. Select the target domain, then click Next.
  5. Add source files or folders, then click Next.
  6. Review the summary, then click Finish.
Note: If no suitable domain exists, create a new bare-metal domain first from the platform settings.

After creation, build the library component from the Flow Navigator.

The IDE extracts hardware configuration metadata with Lopper and generates build configuration files. The IDE generates CMakeLists.txt, UserConfig.cmake, and compile_commands.json. The build produces a .a static library.

Creating a Dynamic Library Component (Linux)

To create a dynamic library component, select File > New Component > Dynamic Library.

  1. Enter the component name and location, then click Next.
  2. Select the target Linux processor domain associated with the application, then click Next.
  3. Select the target Linux domain, then click Next.
  4. Add source files or folders, then click Next.
  5. Review the summary, then click Finish.
Note: The dynamic library flow does not include a separate hardware selection wizard step.

The IDE uses the Linux build flow and does not run Lopper-based hardware metadata extraction. The IDE generates CMakeLists.txt and UserConfig.cmake. The build produces a .so shared library.