Skip to main content

Tech Forum

Static libraries for 6.3.1 SDK?

Static libraries for 6.3.1 SDK?

by Frank Filipanits - Number of replies: 2

We are just getting started with the 6.3.1 SDK, and our preference would be to statically link the NDI library into our app. But the windows 6.3.1 SDK does not appear to include static libraries. 

NDI 6 SDK/Lib/x64/Processing.NDI.Lib.x64.lib is an *import* library, which only provides the interface stubs and still requires the .dll be colocated with the executable to function.

The same is true on MacOS; only a dylib is provided.

The SDK documentation on page 7, section 6 “Dynamic Loading of Libraries” implies that dynamic loading is optional:

At times you might prefer not to link directly to the NDI libraries, loading them dynamically at run time instead. This can be of value in open source projects.

Is it possible for you to provide actual static libraries for both Windows and MacOS?

Also, is there a git repo available for the SDK that we could integrate as a submodule, or a download page where we can access previous versions of the SDK?

Thank you, 

-Frank

In reply to Frank Filipanits

Re: Static libraries for 6.3.1 SDK?

by Zoe Williams -
Hi Frank

Regarding static linking, the NDI SDK is designed around dynamic libraries, not static ones. Dynamic loading is optional from an implementation standpoint but use of the runtime library itself is not.

As for distribution, applications are expected to redistribute or install the NDI runtime binaries alongside their software.

Additionally, here is no public Git repository for the SDK, as it is not open source. For previous SDK versions, you’ll need to contact NDI support directly to request access. See here for more info: https://docs.ndi.video/all/faq/ndi-6/how-can-i-get-a-previous-version-of-ndi-tools-or-the-sdk

You can also find more info about dynamic loading here: https://docs.ndi.video/all/developing-with-ndi/sdk/dynamic-loading-of-ndi-libraries
In reply to Zoe Williams

Re: Static libraries for 6.3.1 SDK?

by Frank Filipanits -

Thank you for the response. The options you provide are more precisely referred to as "load-time" vs. "run-time" dynamic linking. Perhaps an update to the terminology in the documentation would clarify the issue in the future.