Link against static ignition library and static protobuf

Did you add your library to the ProjectName.Build.cs file?

PublicAdditionalLibraries.Add(<path to the library>);

I am working on integrating ignition-robotics library into Unreal to use its transport system.

I built protobuf as static library and linked static ignition against it and that worked and now I have my “*.a” files.

Now, I included those libraries in my project as ThirdParty static libs and tried to load the Unreal editor solution, there it throws me the following error :

0]LogLinux: Warning: dlopen failed:
undefined symbol:

tracing back that error, i found the following :

$ nm -D Binaries/Linux/ | grep

U _ZN6google8protobuf8internal26fixed_address_empty_stringE

I tried the same with all the static libraries that I included, I never found this symbol in any of them. Tried different versions of protobuf (3.6.1) and (3.0.2) with different options “-fPIC -DGOOGLE_PROTOBUF_NO_RTTI -frandom-seed=string” and nothing changed. Still the same loading problem …

Does anyone have an idea where this undefined symbol is coming from ?

Good to know, _ZN6google8protobuf8internal26fixed_address_empty_stringE the only undefined symbol that I found on my shared library “”. Curious ! …


Yep. And Indeed, all the others google protobuf symbols are defined in the .so but that one.

don’t know if that helps but hope so :slight_smile:

Thx Eki but that didn’t work. It complans that the resulting lib is mal formed…