Is anyone using Google Protocol Buffers in a cross-platform project?

  • Hi all.

    Nobody in the Google forum appears to know or want to answer this, but it's creating major aggravation.

    I'm building a cross-platform application that relies on protocol buffers. Therefore, I want to build the protobuf runtime (for C++) as part of the build for each platform and architecture that I'm targeting with my project.

    I've tried bringing what appears to be the necessary subset of Google's source into a Qt project (as a subproject) and building it into a lib. It builds, but any attempt to use it results in hundreds of "symbol not found" errors (despite symbols being present in the lib).

    I find it perplexing that this isn't a common scenario. Does anyone know how to resolve this problem?


  • Lifetime Qt Champion

    not a solution but i did wonder one thing.
    Normally PB builds as a shared library on all supported platforms.
    It requires pkg-config --cflags to setup flags to work properly so im not sure
    it is remotely possible to grab some of the code and get it to work.

    Why not use the included setup info to build as intended on each on your platform and simply link
    to the dll/so files in Qt ?
    I dont think you can build it with qmake alone.
    So integrating building it in the same project is most likely not possible.

  • Thanks for your reply.

    As far as I know, I can't build on each platform individually because I don't have them accessible. There are at least three flavors of Android for various processor types, then Mac OS, Windows, and iOS.

    iOS is an example of the problem: I can't really shell into an iOS environment and install all these tools and build there.

    Does that answer this question of yours: "Why not use the included setup info to build as intended on each on your platform"?

  • Lifetime Qt Champion

    yes it answers it fine. I see your predicament.
    I wish you good luck.

  • We do using cmake. Do you use cmake?

Log in to reply