Cannot find plugins even in static build?

Hello everyone, I’ve been attempting a OpenUSD C++ static libraries build and confirmed that my C++ unix executable no longer depends on other OpenUSD .so libraries.

I used

python build_scripts/build_usd.py --no-python --usd-imaging --no-usdview --no-materialx --build-args=USD,"-DBUILD_SHARED_LIBS=OFF -DPXR_BUILD_MONOLITHIC=OFF" ./build

I am still getting plugin resolver issues though:

$ build/myusdprogram
Will check plugin info paths:
    
 Did check plugin info paths in 0.000001 seconds
Coding Error: in _GetPluginForType at line 163 of /home/usergfp/OpenUSD/pxr/usd/ar/resolver.cpp -- Failed to find plugin for ArDefaultResolver
Segmentation fault (core dumped)

I included the libusd_ar.a library for linking, how come I’m still getting this error about missing plugins?

Docs say

Static Libraries

This mode builds several static libraries. This option allows embedding just the libraries necessary for a given task. However, it does not allow USD plugins or Python modules since that would necessarily cause multiple symbol definitions; for any given symbol we’d have an instance in the main application and another in each plugin/module.

Doesn’t this mean that plugins should be embedded on a as-needed basis and no longer required to be searched for in paths?

Thanks for any help!

Even though the symbols for the plugins are included statically, the registration system still requires searching for the plugInfo.json that define the capabilities of the plugins and other metadata.

You’ll need to configure your plugin search path to locate them.