semlanik / qtprotobuf

Protobuf generator and bindings for Qt framework
https://semlanik.github.io/qtprotobuf
MIT License
169 stars 38 forks source link

How to use qtprotobuf 0.6.0 Windows release #251

Open cooked opened 2 years ago

cooked commented 2 years ago

Hi, I'm trying to build an app on Windows using the qtprotobuf libs/includes provided in the 0.6.0 release. I'm building using qmake and msvc2019.

I can't get past the following linker error (uart_messages originates from my proto) uart_messages.qpb.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class std::list<class std::function<void __cdecl(void)>,class std::allocator<class std::function<void __cdecl(void)> > > & __cdecl QtProtobuf::registerFunctions(void)" (__imp_?registerFunctions@QtProtobuf@@YAAEAV?$list@V?$function@$$A6AXXZ@std@@V?$allocator@V?$function@$$A6AXXZ@std@@@2@@std@@XZ) not resolved in function "void __cdecldynamic initializer for 'ProtoTypeRegistrarCommand''(void)" (??__EProtoTypeRegistrarCommand@@YAXXZ)`

in the .pro file I have the following INCLUDEPATH += $$PWD/modules/qtprotobuf-0.6.0/include/QtProtobufProtobuf LIBS += -L$$PWD/modules/qtprotobuf-0.6.0/lib -lQt5Protobuf -lQt5ProtobufQtTypes -lQt5ProtobufWellKnownTypes

what am I missing? is this error maybe cause by some sort of name mangling?

hope someone can help

cheers stef

semlanik commented 2 years ago

Hi @cooked , weird, Qt5Protobuf.lib should contain this symbol exported.

cooked commented 2 years ago

Hi @semlanik do you think that might be that I'm building with msvc2019 and maybe the lib was built with a different version?

semlanik commented 2 years ago

Need to check, CI check is poor and doesn't have the external usage check. So there might be issues in the library it self. I will try to check once have powers.