<div dir="ltr"><div dir="ltr">The application is written in Rust and using the gstreamer, gstreamer-base and gstreamer-app crates. Building and running against the installed GStreamer (and devel) .msi works as expected. I'm using the d3d11screencapturesrc, mfg264enc and appsink elements in my pipeline. I've tried to build GStreamer from source "<code>meson --default-library=static</code> ...." and it builds and creates a gstreamer-full-1.0.lib which I assume I should be able to use for the static linking into my app. The Rust crates however still seem to be trying to link against e.g. gobject-2.0 etc. and not gstreamer-full-1.0. I've changed the PKG_CONFIG_PATH env variable to my custom build pkgconfig path and it seems to be using that but still trying to link against the individual libraries that the static full build doesn't even produce.</div><div dir="ltr"><br></div><div>I also tried to statically link against the official .msi install using the env variable SYSTEM_DEPS_LINK = "static" but that didn't seem to do anything.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Dec 5, 2022 at 11:05 AM Sebastian Dröge <<a href="mailto:sebastian@centricular.com">sebastian@centricular.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>On Sun, 2022-12-04 at 15:52 +0200, Mattias Nordstrom via gstreamer-devel wrote:</div><blockquote type="cite" style="margin:0px 0px 0px 0.8ex;border-left:2px solid rgb(114,159,207);padding-left:1ex"><div dir="ltr"><div><br></div><div>I'm trying to make a small self contained binary in Rust using GStreamer and a couple of plugins. Can the Rust bindings already somehow utilize a gstreamer-full static compilation? If not, are there any other ways to make a self-contained binary that is smallish? Primary target is Windows.</div></div></blockquote><div><br></div><div>Theoretically this works, but there seems to be a bug currently that prevents it from working successfully with gobject-introspection:</div><div>    <a href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/262" target="_blank">https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/262</a></div><div>I think if you disable gobject-introspection then it will work correctly.</div><div><br></div><div>If I understand you correctly, you're writing your application in Rust? In that case you can directly depend on the Rust plugins in your Cargo.toml and statically link them that way, which depending on the plugin also gives you direct access to some more API (e.g. enum types).</div><blockquote type="cite" style="margin:0px 0px 0px 0.8ex;border-left:2px solid rgb(114,159,207);padding-left:1ex"></blockquote><div><br></div><div><span><pre>-- <br></pre><div><div><span style="font-family:Calibri,sans-serif;font-size:14.6667px">Sebastian Dröge, Centricular Ltd · </span><a href="https://www.centricular.com/" title="Click to open https://www.centricular.com/" style="color:rgb(0,0,238);font-family:Calibri,sans-serif;font-size:14.6667px" target="_blank">https://www.centricular.com</a></div></div></span></div></div>
</blockquote></div></div>