how software decays "In version 22.x, C++ protobuf added an explicit dependency on Abseil.". And to actually link in that dependency, you need to use Google Bazel's build system, because in their wisdom they split up Abseil into **186** sub libraries. If you are not using CMake or Bazel, good luck hand-importing the required Abseil libraries. https://stackoverflow.com/questions/75667971/how-do-i-properly-link-the-google-protocol-buffers-library-with-my-application-a
How do I properly link the Google Protocol Buffers library with my application at compilation?

I am following the tutorial listed here on Protobuf's website. I copied the sample addressbook.proto and compiled it using the line protoc --cpp_out=. addressbook.proto Which produced addressbook....

Stack Overflow
@bert_hubert We used Tensorflow at some point in our C++ code. So glad we no longer have that dependency. It turns out that inference of a classic neural network is just a few matrix multiplications. No need for an oversized library. The training is done from Python, where we have pre-built modules.
@bert_hubert I don't care how useful protobuf is. It's always been a scourge on me getting things compiled, not just as a dev but as a user. I'd rather just do without the fancy functionality it provides. Google is the worst at this shit. I'm so glad I've never worked for them.
@thomasjwebb hmm well it hasn't been too bad for me for a long time.. getting a format like this is always going to come with some tooling. But anyhow, it now definitely sucks.

@thomasjwebb @bert_hubert its not quite the same thing, but for what i do SBE is much more useful.

Nothing but trouble with protobuf

@bert_hubert Software at Google is designed to be built and run at Google. That they make it open source is an accident.

tl;dr don't use Google open source software at the risk of great pain.

@bert_hubert yeah this extra dependency they took on really is a pain

@bert_hubert This library's only a few megs, 11 MB total if I'm looking at both libabsl20260107 and libabsl-dev on Debian sid.

What's wrong with one .so file, one .a file, one .pc file, and perhaps a hierarchy of preciously organized header files with one .h file at the top that includes everything?

@bert_hubert Is this where I announce my protocpp project, an alternative protobuf compatible compiler that outputs C++ structs instead of C-style functions? Needs minor work to serve others, but I have it running integrated with an asio based server. Also no other language yet, but that is not the hard bit.

@bert_hubert small correction: abseil is also buildable using cmake. It's done so in the buildroot package.

https://gitlab.com/buildroot.org/buildroot/-/blob/cbe867b895d19861cd809c953f88c576f2073223/package/libabseil-cpp/libabseil-cpp.mk

package/libabseil-cpp/libabseil-cpp.mk 路 cbe867b895d19861cd809c953f88c576f2073223 路 buildroot / buildroot 路 GitLab

Buildroot, making embedded Linux easy. https://buildroot.org Do not file pull requests here.

GitLab
@bert_hubert but yeah, bumping the protobuf package became more complicated in the last years. Don't get me started on grpc...