<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/cross-compiling-with-gst-build-and-gstreamer-etpspo2jr" -->

---
title: Cross-compiling with gst-build and GStreamer | daily.dev
description: A practical walkthrough for cross-compiling GStreamer using gst-build (now part of the GStreamer monorepo) targeting AArch64 on a Xilinx Zynq UltraScale+ MPSoC...
canonical: https://daily.dev/posts/cross-compiling-with-gst-build-and-gstreamer-etpspo2jr
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Cross-compiling with gst-build and GStreamer | daily.dev
og:description: A practical walkthrough for cross-compiling GStreamer using gst-build (now part of the GStreamer monorepo) targeting AArch64 on a Xilinx Zynq UltraScale+ MPSoC...
og:url: https://daily.dev/posts/cross-compiling-with-gst-build-and-gstreamer-etpspo2jr
og:image: https://api.daily.dev/og/posts/EtPSpO2jR.png
og:image:alt: Cross-compiling with gst-build and GStreamer
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Cross-compiling with gst-build and GStreamer

**[Collabora Blog](https://daily.dev/sources/collabora)** · 6 min read · 0 upvotes · 0 comments

## Summary

A practical walkthrough for cross-compiling GStreamer using gst-build (now part of the GStreamer monorepo) targeting AArch64 on a Xilinx Zynq UltraScale+ MPSoC board. Covers installing the Ubuntu cross-toolchain, generating a Meson cross file, configuring gst-build with platform-specific options (including gst-omx for Xilinx), building with ninja, deploying artifacts via NFS, and setting up runtime environment variables. Also covers handling third-party library dependencies like wavpack using cerbero to generate a sysroot, and generating an updated cross file that references it. Requires Meson 0.54.1 or later for full cross-compilation support.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.collabora.com/news-and-blog/blog/2020/05/15/cross-compiling-with-gst-build-and-gstreamer>

## Questions this post answers

### How do I cross-compile GStreamer for AArch64 using Meson and gst-build?

Install the Ubuntu cross-toolchain (gcc-aarch64-linux-gnu, g++-aarch64-linux-gnu, libc6-dev-arm64-cross), generate a Meson cross file specifying aarch64-linux-gnu-gcc/g++ as compilers and setting pkg_config_libdir, then configure gst-build with --cross-file and your target options. Build with ninja and install using DESTDIR. Meson 0.54.1 or later is required for pkg_config_libdir support and correct cross-compilation behavior.

_Embedded developers targeting ARM with GStreamer track build system changes like these on daily.dev._

### How do I handle third-party library dependencies like wavpack when cross-compiling GStreamer for ARM?

Use cerbero to build a minimal sysroot for the target architecture. Run cerbero-uninstalled with a cross config (e.g., cross-lin-arm64.cbc) to bootstrap and build the library. Then regenerate the Meson cross file pointing pkg_config_libdir at the cerbero-generated pkgconfig directory, and add -L and -Wl,-rpath-link flags for the sysroot path in the link args.

_Developers building GStreamer plugin stacks for embedded targets find relevant sysroot and toolchain discussions on daily.dev._

## Similar posts on daily.dev

- [Compile Here, Run Everywhere: Crosstool-Ng](https://daily.dev/posts/compile-here-run-everywhere-crosstool-ng-rrpfpu4sz) · Hackaday · 0 upvotes · 0 comments
- [Building a Host-Tuned GCC to Make GCC Compile Faster](https://daily.dev/posts/building-a-host-tuned-gcc-to-make-gcc-compile-faster-wt5gmdqdk) · Lobsters · 0 upvotes · 0 comments
- [Bootlin toolchains 2026.08 released – Bootlin](https://daily.dev/posts/bootlin-toolchains-2026-08-released-bootlin-xqeqmnze8) · Bootlin · 1 upvotes · 0 comments
- [Building Your Own Operating System From Scratch \(A Practical Getting-Started Guide\)](https://daily.dev/posts/building-your-own-operating-system-from-scratch-a-practical-getting-started-guide--bcelcqpq7) · Medium · 0 upvotes · 0 comments
- [Optimizing Arm-based Build Servers](https://daily.dev/posts/optimizing-arm-based-build-servers-rh07w05dm) · SitePoint · 1 upvotes · 0 comments

---

[View this post on daily.dev](https://daily.dev/posts/cross-compiling-with-gst-build-and-gstreamer-etpspo2jr)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Cross-compiling with gst-build and GStreamer","url":"https://daily.dev/posts/cross-compiling-with-gst-build-and-gstreamer-etpspo2jr","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/cross-compiling-with-gst-build-and-gstreamer-etpspo2jr"},"datePublished":"2026-08-11T08:55:46.235Z","dateModified":"2026-08-11T09:37:05.748Z","description":"A practical walkthrough for cross-compiling GStreamer using gst-build (now part of the GStreamer monorepo) targeting AArch64 on a Xilinx Zynq UltraScale+ MPSoC...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/4e30a4db9343faf4c7fa86a69255db45?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/4e30a4db9343faf4c7fa86a69255db45?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collabora Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collabora Blog","logo":"https://media.daily.dev/image/upload/s--ZGZ0FjqS--/f_auto,q_auto/v1786438306/logos/collabora?_a=BAMAMicg0","url":"https://daily.dev/sources/collabora"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/cross-compiling-with-gst-build-and-gstreamer-etpspo2jr","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collabora Blog","item":"https://daily.dev/sources/collabora"},{"@type":"ListItem","position":3,"name":"Cross-compiling with gst-build and GStreamer"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/cross-compiling-with-gst-build-and-gstreamer-etpspo2jr#faq","mainEntity":[{"@type":"Question","name":"How do I cross-compile GStreamer for AArch64 using Meson and gst-build?","acceptedAnswer":{"@type":"Answer","text":"Install the Ubuntu cross-toolchain (gcc-aarch64-linux-gnu, g++-aarch64-linux-gnu, libc6-dev-arm64-cross), generate a Meson cross file specifying aarch64-linux-gnu-gcc/g++ as compilers and setting pkg_config_libdir, then configure gst-build with --cross-file and your target options. Build with ninja and install using DESTDIR. Meson 0.54.1 or later is required for pkg_config_libdir support and correct cross-compilation behavior. Embedded developers targeting ARM with GStreamer track build system changes like these on daily.dev."}},{"@type":"Question","name":"How do I handle third-party library dependencies like wavpack when cross-compiling GStreamer for ARM?","acceptedAnswer":{"@type":"Answer","text":"Use cerbero to build a minimal sysroot for the target architecture. Run cerbero-uninstalled with a cross config (e.g., cross-lin-arm64.cbc) to bootstrap and build the library. Then regenerate the Meson cross file pointing pkg_config_libdir at the cerbero-generated pkgconfig directory, and add -L and -Wl,-rpath-link flags for the sysroot path in the link args. Developers building GStreamer plugin stacks for embedded targets find relevant sysroot and toolchain discussions on daily.dev."}}]}
```

