Hi,
I am trying to create a static lib with the message definitions to be share
across multiple CMake projects. At the moment, I have:
- A Conan.io package with *protobuf *pre-comiled into static libs.
- A *CommonDefinitions* project (with a dependency to the *protobuf*
package)
- From which I create a *CommonDefinitions* conan.io package
containing the CommonDefinitions static library
- Project include a test Executable which uses the static library
- A *EndUser* project (with a dependency to the *CommonDefinitions*
package and the *protobuf* package)
Now, the test executable of the *CommonDefiniitons* project works as
expected and has access to the CommonDefinitions messages. However, the
*EndUser* project is not able to link, it complains about missing
references to protobuf static libraries, even though I also include the
protobuf package in the *EndUser* target_link_libraries project as well.
Does anyone have an idea or had a similar problem?
Thanks
Here are the linker traces:
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function `protobuf_test_2eproto::protobuf_AssignDescriptors()':
/home/toto/gitlab/system/system-definitions/build-debug/Definitions/test.pb.cc:79:
undefined reference to
`google::protobuf::internal::AssignDescriptors(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
google::protobuf::internal::MigrationSchema const*,
google::protobuf::Message const* const*, unsigned int const*,
google::protobuf::MessageFactory*, google::protobuf::Metadata*,
google::protobuf::EnumDescriptor const**,
google::protobuf::ServiceDescriptor const**)'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function
`protobuf_test_2eproto::protobuf_RegisterTypes(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)':
/home/toto/gitlab/system/system-definitions/build-debug/Definitions/test.pb.cc:90:
undefined reference to
`google::protobuf::internal::RegisterAllTypes(google::protobuf::Metadata
const*, int)'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function `protobuf_test_2eproto::AddDescriptorsImpl()':
/home/toto/gitlab/system/system-definitions/build-debug/Definitions/test.pb.cc:101:
undefined reference to
`google::protobuf::DescriptorPool::InternalAddGeneratedFile(void const*,
int)'
/home/toto/gitlab/system/system-definitions/build-debug/Definitions/test.pb.cc:103:
undefined reference to
`google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char
const*, void (*)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&))'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function
`axis::system::test::TestData::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*)':
/home/toto/gitlab/system/system-definitions/build-debug/Definitions/test.pb.cc:251:
undefined reference to
`google::protobuf::internal::WireFormat::SkipField(google::protobuf::io::CodedInputStream*,
unsigned int, google::protobuf::UnknownFieldSet*)'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function
`axis::system::test::TestData::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*)
const':
/home/toto/gitlab/system/system-definitions/build-debug/Definitions/test.pb.cc:294:
undefined reference to
`google::protobuf::internal::WireFormat::SerializeUnknownFields(google::protobuf::UnknownFieldSet
const&, google::protobuf::io::CodedOutputStream*)'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function
`axis::system::test::TestData::InternalSerializeWithCachedSizesToArray(bool,
unsigned char*) const':
/home/toto/gitlab/system/system-definitions/build-debug/Definitions/test.pb.cc:330:
undefined reference to
`google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet
const&, unsigned char*)'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function `axis::system::test::TestData::ByteSizeLong() const':
/home/toto/gitlab/system/system-definitions/build-debug/Definitions/test.pb.cc:343:
undefined reference to
`google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(google::protobuf::UnknownFieldSet
const&)'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function
`axis::system::test::TestData::MergeFrom(google::protobuf::Message const&)':
/home/toto/gitlab/system/system-definitions/build-debug/Definitions/test.pb.cc:374:
undefined reference to
`google::protobuf::internal::ReflectionOps::Merge(google::protobuf::Message
const&, google::protobuf::Message*)'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function `google::protobuf::MessageLite::MessageLite()':
/home/toto/.conan/data/protobuf/3.5.1/axis/stable/package/13856a74412f9b4d58ac9612c055a0cf19317385/include/google/protobuf/message_lite.h:176:
undefined reference to `vtable for google::protobuf::MessageLite'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function `google::protobuf::MessageLite::~MessageLite()':
/home/toto/.conan/data/protobuf/3.5.1/axis/stable/package/13856a74412f9b4d58ac9612c055a0cf19317385/include/google/protobuf/message_lite.h:177:
undefined reference to `vtable for google::protobuf::MessageLite'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function
`google::protobuf::internal::GetProto3PreserveUnknownsDefault()':
/home/toto/.conan/data/protobuf/3.5.1/axis/stable/package/13856a74412f9b4d58ac9612c055a0cf19317385/include/google/protobuf/message_lite.h:400:
undefined reference to
`google::protobuf::internal::proto3_preserve_unknown_'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function `google::protobuf::UnknownFieldSet::Clear()':
/home/toto/.conan/data/protobuf/3.5.1/axis/stable/package/13856a74412f9b4d58ac9612c055a0cf19317385/include/google/protobuf/unknown_field_set.h:267:
undefined reference to `google::protobuf::UnknownFieldSet::ClearFallback()'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function
`google::protobuf::internal::InternalMetadataWithArena::DoMergeFrom(google::protobuf::UnknownFieldSet
const&)':
/home/toto/.conan/data/protobuf/3.5.1/axis/stable/package/13856a74412f9b4d58ac9612c055a0cf19317385/include/google/protobuf/metadata.h:62:
undefined reference to
`google::protobuf::UnknownFieldSet::MergeFrom(google::protobuf::UnknownFieldSet
const&)'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function
`google::protobuf::internal::InternalMetadataWithArena::default_instance()':
/home/toto/.conan/data/protobuf/3.5.1/axis/stable/package/13856a74412f9b4d58ac9612c055a0cf19317385/include/google/protobuf/metadata.h:70:
undefined reference to
`google::protobuf::UnknownFieldSet::default_instance()'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function `google::protobuf::Message::Message()':
/home/toto/.conan/data/protobuf/3.5.1/axis/stable/package/13856a74412f9b4d58ac9612c055a0cf19317385/include/google/protobuf/message.h:188:
undefined reference to `vtable for google::protobuf::Message'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function `google::protobuf::Message::~Message()':
/home/toto/.conan/data/protobuf/3.5.1/axis/stable/package/13856a74412f9b4d58ac9612c055a0cf19317385/include/google/protobuf/message.h:189:
undefined reference to `vtable for google::protobuf::Message'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):
In function `axis::system::test::TestData const*
google::protobuf::internal::DynamicCastToGenerated<axis::system::test::TestData
const>(google::protobuf::Message const*)':
/home/toto/.conan/data/protobuf/3.5.1/axis/stable/package/13856a74412f9b4d58ac9612c055a0cf19317385/include/google/protobuf/generated_message_reflection.h:698:
undefined reference to `typeinfo for google::protobuf::Message'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):(.rodata._ZTVN4axis6system4test8TestDataE[_ZTVN4axis6system4test8TestDataE]+0x20):
undefined reference to `google::protobuf::Message::GetTypeName[abi:cxx11]()
const'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):(.rodata._ZTVN4axis6system4test8TestDataE[_ZTVN4axis6system4test8TestDataE]+0x58):
undefined reference to
`google::protobuf::Message::InitializationErrorString[abi:cxx11]() const'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):(.rodata._ZTVN4axis6system4test8TestDataE[_ZTVN4axis6system4test8TestDataE]+0x60):
undefined reference to
`google::protobuf::Message::CheckTypeAndMergeFrom(google::protobuf::MessageLite
const&)'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):(.rodata._ZTVN4axis6system4test8TestDataE[_ZTVN4axis6system4test8TestDataE]+0x80):
undefined reference to
`google::protobuf::MessageLite::SerializeWithCachedSizesToArray(unsigned
char*) const'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):(.rodata._ZTVN4axis6system4test8TestDataE[_ZTVN4axis6system4test8TestDataE]+0xb0):
undefined reference to `google::protobuf::Message::DiscardUnknownFields()'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):(.rodata._ZTVN4axis6system4test8TestDataE[_ZTVN4axis6system4test8TestDataE]+0xb8):
undefined reference to `google::protobuf::Message::SpaceUsedLong() const'
/home/toto/.conan/data/system-definitions/0.0/axis/stable/package/9755f981ac44041fa0948f05e49abfa3d3346131/lib/libsystem-definitions.a(test.pb.cc.o):(.rodata._ZTIN4axis6system4test8TestDataE[_ZTIN4axis6system4test8TestDataE]+0x10):
undefined reference to `typeinfo for google::protobuf::Message'
--
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.