Hello!
I want to create static lib, which exports wrapper of prtobuf-generated 
class, but encountered such a problem:

1. building static library (Msg):

//msgbuf.proto------------------------ 
message MsgBuf{
        required int32 val = 1;
}

//msg.h-----------------------------------
class MsgBuff;

class Msg{
        MsgBuff *ioBuf;
public:
        int value() const;
};

//msg.cpp--------------------------------
#include "msg.h"
#include "msgbuf.pb.h"

Msg::Msg{
        ioBuf = new MsgBuf;
}

int Msg::value() const {
        return ioBuf->val();
}


thus lib project includes:
HEADERS += msg.h msgbuf.pb.h
SOURCES += msg.cpp msgbuf.pb.cc
INCLUDEPATH += path_to_protobuf_include
LIBS += -Lpath_to_protobuf_lib -lprotobuf

static library compilation is successful.

2. Further, if the resulting static library to linked to test app

//main.cpp--------------------------------
#include "msg.h"

int main(){
        Msg m;
        return 0;
}

lib project includes:
HEADERS+= msg.h
SOURCES += main.cpp
LIBS += -Lpath_to_libMsg -lMsg

then I get a long list of errors:

./libMsg.a(msgbuf.pb.o): In function 
`Z34protobuf_AssignDesc_msgbuf_2eprotov':

path_to_Msg/msgbuf.pb.cc:29: undefined reference to 
`google::protobuf::DescriptorPool::generated_pool()'

path_to_Msg /msgbuf.pb.cc:29: undefined reference to 
`google::protobuf::DescriptorPool::FindFileByName(std::string const&) const'

path_to_Msg /msgbuf.pb.cc:30: undefined reference to 
`google::protobuf::internal::LogMessage::LogMessage(google::protobuf::LogLevel, 
char const*, int)'

path_to_Msg /msgbuf.pb.cc:30: undefined reference to 
`google::protobuf::internal::LogMessage::operator<<(char const*)'
....
....
and so on...

please help me solve this problem.

Sorry for my English.

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to