[protobuf] protobuf::internal::GetEmptyStringAlreadyInited(): Assertion `empty_string_ != __null' failed

2017-04-28 Thread Jai Asher
Hi,
I am trying to build and run a project using protobuf-lite, my library (
libMaster.so) links to another library (libpulsar.so).

*Scenario 1 -* both libraries use protobuf classes.
libpulsar.so includes static library libprotobuf-lite.a but is built 
with -fvisibility=hidden hence  libMaster.so also needs to statically 
include libprotobuf-lite.a
  
Project is built but during run time I get an error
protobuf::internal::GetEmptyStringAlreadyInited(): Assertion 
`empty_string_ != __null' failed

*Scenario 2 - *
I pushed all protobuf related code to libpulsar.so, hence *only* this 
library includes static library libprotobuf-lite.a, libMaster.so doesn't 
include libprotobuf-lite.a. code runs fine during run time.


I don't understand why Scenario 1 fails but Scenario 2 passes. Is there 
some restriction that the static library can't be included twice.

Regards,
Jai

PS: I am restricted to use libprotobuf-lite.a and can't use the shared 
library.

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


[protobuf] Re: Extended field options

2017-04-28 Thread 'Josh Haberman' via Protocol Buffers
If the bitstring has a maximum length that is smaller than 32 or 64 bits, 
you could declare it as an integer type.

Otherwise you might want to declare it as a "bytes" type.

On Tuesday, April 18, 2017 at 1:34:01 AM UTC-7, oberon.me...@gmail.com 
wrote:
>
> Hello everyone
> I am new to protobuf and trying to figure out if it would be smart to 
> define a telegram-code (which in its bitstring identifies the message type) 
> as a message option and if yes how would you do so?
> Greatly appreciate it and thanks in advance.
>

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


[protobuf] Re: protoc plugin in Python and unknown extension options

2017-04-28 Thread 'Josh Haberman' via Protocol Buffers
Have you tried just using the FieldDescriptor? I suspect that will work, as 
it's what some of our own code does. For example see:

https://github.com/google/protobuf/blob/master/python/google/protobuf/text_format.py#L819

On Monday, April 24, 2017 at 8:19:23 PM UTC-7, Robert Dyer wrote:
>
> I'm writing a protoc plugin for 2.5.0.  My plugin is in Python.
>
> Given the following proto:
>
> import "google/protobuf/descriptor.proto";
>
> message Test {
> extend google.protobuf.MessageOptions {
> optional int custom_option = 5;
> }
>
> message Nested {
> option (custom_option) = 5;
> }
> } 
>
>
> If I want, I can compile this to Python.  Then in my plugin I can import 
> that Test_pb2.py file and lookup the option:
>
>
> var.options.Extensions[Test.custom_option]
>
>
> This works fine.  However, the problem I can't figure out is that I need 
> to design the plugin so it works with *any* input file with *any* declared 
> extension option.  So I can't write my code as 'Test.custom_option' because 
> I don't know beforehand what options will be declared.
>
>
> I can get the extension dynamically from the Descriptor.extension list. 
>  But this is a FieldDescriptorProto and to look up the extension in 
> options.Extensions I need an 'extension handle'.  I'm not sure what that is 
> or how to get it.
>

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


Re: [protobuf] zigzag encode and zigzag decode invoking undefined behavior

2017-04-28 Thread 'Josh Haberman' via Protocol Buffers
If you have a change that makes protobuf code not rely on undefined 
behavior, and also doesn't sacrifice performance, then we should merge it.

Feel free to send a GitHub PR. But make sure the code is C++03 (protobuf 
doesn't use C++11 yet).

On Tuesday, April 25, 2017 at 1:36:31 PM UTC-7, Wolfgang Brehm wrote:
>
> I know, but the proposed solution is still worth considering as it gives 
> you the best of both worlds with just a little compile time overhead.
> It yields the same result on 2s complement machines as the current 
> function but also on other machines because it is well defined.
> This means that
> clang++ -fsanitize=undefined
> will not have anything to complain either.
> TL;DR: You loose nothing but time and gain better defined code, but 
> basically everything stays the same.
>
> Am Dienstag, 25. April 2017 20:17:33 UTC+2 schrieb Feng Xiao:
>>
>> Right now protobuf implementation assumes 2s complement and won't work on 
>> any other environments. That's undefined behavior according to C++ standard 
>> but in practice it's very unlikely to be a problem.
>>
>> On Tue, Apr 25, 2017 at 5:42 AM, Wolfgang Brehm  
>> wrote:
>>
>>> right shifting negative integers is tecnically undefined, this means 
>>> that the implementation used for encoding integers:
>>> (n<<1)^(n>>(digits-1))
>>> is tecnically undefined according to:
>>>
 The value of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits 
 are zero-filled. If E1 has an unsigned type, the value of the result is E1 
 × 2 E2, reduced modulo one more than the maximum value representable in 
 the 
 result type. Otherwise, if E1 has a signed type and non-negative value, 
 and 
 E1 × 2 E2 is representable in the corresponding unsigned type of the 
 result 
 type, then that value, converted to the result type, is the resulting 
 value; otherwise, the behavior is undefined.
>>>
>>>
>>> and the implementation for decoding:
>>> (n>>1)^(-(n&1))
>>> depends on the 2s complement as well and is probably tecnically 
>>> undefined (but I cant find a quote from the standard).
>>>
>>> This is why I propose the following solution:
>>>
>>> template::type>>
>>> U constexpr zigzag_encode(const S &n){
>>>   return (U(n)<<1)^(n<0?~U(0):U(0));
>>> }
>>>
>>> template::type>>
>>> S constexpr zigzag_decode(const U &n){
>>>   return (n&1)?-1-S(n>>1):(n>>1);
>>> }
>>>
>>> This does not look as cool, but modern compilers (llvm and gcc were 
>>> tested) will compile to bascially the same instructions, gcc will introduce 
>>> 1 additional instruction for decode.
>>>
>>> -- 
>>> 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 protobuf+u...@googlegroups.com.
>>> To post to this group, send email to prot...@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/protobuf.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


Re: [protobuf] new protoc keywords?

2017-04-28 Thread 'Josh Haberman' via Protocol Buffers
I agree with Josh. It is very unlikely that we would introduce new keywords 
for defining a different kind of service.

On Wednesday, April 26, 2017 at 12:45:29 PM UTC-7, Josh Humphries wrote:
>
> I think the right approach to something like this would be to use the 
> existing service definition support and write a protoc plugin that does the 
> code gen. To layer on extra things -- for concepts/features that OSGI 
> supports but that can't be modeled just with proto service definitions -- 
>  you could probably use custom options for services and methods. More 
> complicated things may require clever modeling with the request/response 
> types (and maybe custom message and field options, too). These primitives 
> can likely take you pretty far, without introducing any special syntax or 
> keywords in protos.
>
>
> 
> *Josh Humphries*
> jh...@bluegosling.com
>
> On Tue, Apr 25, 2017 at 6:53 PM, Scott Lewis  
> wrote:
>
>> I've been happily using protocol buffers to implement Java <-> Python 
>> interaction using OSGi Remote Services [1,2].   
>>
>> Remote Services is a spec that extends OSGi services to out-of-process 
>> access.   A nice thing about the Remote Services spec is that it is 
>> transport-independent...allowing arbitrary wire protocols and serialization 
>> formats via a distribution provider.  For example, I've created 
>> distribution providers based upon Py4j [1], and grcp/protocol buffers [2].  
>> The distribution provider(s) can be selected at runtime for individual 
>> remote services.
>>
>> One thought I've had would be to allow remote services to be declared in 
>> .proto files, and generate the osgi remote service a) metadata; b) impl 
>> code; c) client code.  
>>
>> I think one way to do this would be to implement protoc language 
>> additions for handling the service keyword, as grcp does.  Another way 
>> would be to add something like osgiremoteservice keyword to protoc for 
>> handling declaring and generating osgi remote services across multiple 
>> languages.
>>
>> Question:  Is there a way to add a new keyword to protoc?   I would 
>> prefer not to just provide an impl of the existing proto3 'service' 
>> keyword, because an osgi remote service has other/additional behavior (e.g. 
>> dynamics, async access, etc) based upon the OSGi service registry.
>>
>> Thanks,
>>
>> Scott
>>
>> [1] https://github.com/ECF/Py4j-RemoteServicesProvider
>>
>> [2] https://github.com/ECF/grpc-RemoteServicesProvider
>>
>>
>>
>> -- 
>> 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 protobuf+unsubscr...@googlegroups.com.
>> To post to this group, send email to protobuf@googlegroups.com.
>> Visit this group at https://groups.google.com/group/protobuf.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


[protobuf] Re: Linking error

2017-04-28 Thread 'Josh Haberman' via Protocol Buffers
Those functions are marked "inline", so the compiler should not be emitting 
references to them. Do you have any unusual inlining settings on your 
compiler/project?

On Friday, April 28, 2017 at 3:39:59 AM UTC-7, 
dbbrealtimesoftw...@gmail.com wrote:
>
> Hi,
> I am starting to use the protobuf library and have downloaded protobuff 
> v3.2.0 for windows.
> I have made up my <>.proto file and generated the <>.ph.h and <>.pb.cc 
> files, build the protobuf libraries, created dll files for VC2015, produces 
> the proc.exe file and included everything in a VS2015 project. All compile 
> correct, but the linking fails as follows:
>
>  
>
> 1>protobuf_messages.pb.obj : error LNK2019: unresolved external symbol 
> "__declspec(dllimport) public: void __cdecl 
> google::protobuf::io::CodedInputStream::GetDirectBufferPointerInline(void 
> const * *,int *)" 
> (__imp_?GetDirectBufferPointerInline@CodedInputStream@io@protobuf@google@@QEAAXPEAPEBXPEAH@Z)
>  
> referenced in function "private: static bool __cdecl 
> google::protobuf::internal::WireFormatLite::ReadRepeatedFixedSizePrimitive(int,unsigned
>  
> int,class google::protobuf::io::CodedInputStream *,class 
> google::protobuf::RepeatedField *)" 
> (??$ReadRepeatedFixedSizePrimitive@N$00@WireFormatLite@internal@protobuf@google@@CA_NHIPEAVCodedInputStream@io@23@PEAV?$RepeatedField@N@23@@Z)
>
> 1>protobuf_messages.pb.obj : error LNK2019: unresolved external symbol 
> "__declspec(dllimport) public: static unsigned char const * __cdecl 
> google::protobuf::io::CodedInputStream::ExpectTagFromArray(unsigned char 
> const *,unsigned int)" 
> (__imp_?ExpectTagFromArray@CodedInputStream@io@protobuf@google@@SAPEBEPEBEI@Z)
>  
> referenced in function "private: static bool __cdecl 
> google::protobuf::internal::WireFormatLite::ReadRepeatedFixedSizePrimitive(int,unsigned
>  
> int,class google::protobuf::io::CodedInputStream *,class 
> google::protobuf::RepeatedField *)" 
> (??$ReadRepeatedFixedSizePrimitive@N$00@WireFormatLite@internal@protobuf@google@@CA_NHIPEAVCodedInputStream@io@23@PEAV?$RepeatedField@N@23@@Z)
>
> 1>protobuf_messages.pb.obj : error LNK2019: unresolved external symbol 
> "__declspec(dllimport) public: void __cdecl 
> google::protobuf::internal::ArenaStringPtr::ClearToEmptyNoArena(class 
> std::basic_string,class 
> std::allocator > const *)" 
> (__imp_?ClearToEmptyNoArena@ArenaStringPtr@internal@protobuf@google@@QEAAXPEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
>  
> referenced in function "public: virtual void __cdecl 
> satscan_api_priscilla::carrier::Clear(void)" 
> (?Clear@carrier@satscan_api_priscilla@@UEAAXXZ)
>
>  
>
> Can anybody able to help me?
>
>  
>
> Thanks, in advance.
>
>  
>
> /Dagfinn
>

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


[protobuf] Re: How to convert message to its extend message?

2017-04-28 Thread 'Josh Haberman' via Protocol Buffers
There is no way to do that. A message does not know what message it is 
contained inside. Pointers only go down to submessages, not up to parent 
messages.

On Friday, April 28, 2017 at 3:49:41 AM UTC-7, Peter Wang wrote:
>
> Hello,
>
> 1. message Foo's definition,
> message Foo {
>   extensions 100 to 199;
> }
>
> 2. extension message Baz's definition,
> message Baz {
>   extend Foo {
> optional Baz foo_ext = 124;
>   }
> }
>
> 3. get the baz object's pointer by foo object use the MutableExtension() 
> API,
> Foo foo;
> Baz* baz = foo.MutableExtension(Baz::foo_ext);
> FillInMyBaz(baz);
>
> But how to get the foo object by baz?
>
> Best Regards,
> Peter
>

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


[protobuf] Re: Linking errors when compiling protobuff 2.5.0 on linux

2017-04-28 Thread 'Josh Haberman' via Protocol Buffers
I don't think we support building with -fvisibility=hidden.

That said, it might be a simple fix. You could try tweaking the code in 
base/port.h according to the suggestions here:

https://gcc.gnu.org/wiki/Visibility

If you got it to work I think we would welcome a PR on GitHub.

On Friday, April 28, 2017 at 4:23:35 AM UTC-7, Taw Moto wrote:
>
> Hello, 
>
> I am trying to compile protobuf with very simple arguments and it does not 
> work.
>
> CFLAGS="-fPIC -DPIC -fvisibility=hidden" CXXFLAGS="-fPIC -DPIC 
> -fvisibility=hidden" ./configure --prefix=/USERS/test/protobuf-2.5.0/output 
> --enable-shared --enable-static --with-pic (then make install)
>
>
>
> main.o: In function `main':
> main.cc:(.text+0xa5): undefined reference to 
> `google::protobuf::compiler::cpp::CppGenerator::CppGenerator()'
> main.cc:(.text+0x1c0): undefined reference to 
> `google::protobuf::compiler::java::JavaGenerator::JavaGenerator()'
> main.cc:(.text+0x287): undefined reference to 
> `google::protobuf::compiler::python::Generator::Generator()'
> main.cc:(.text+0x36e): undefined reference to 
> `google::protobuf::compiler::python::Generator::~Generator()'
> main.cc:(.text+0x37d): undefined reference to 
> `google::protobuf::compiler::java::JavaGenerator::~JavaGenerator()'
> main.cc:(.text+0x38c): undefined reference to 
> `google::protobuf::compiler::cpp::CppGenerator::~CppGenerator()'
> main.cc:(.text+0x4f9): undefined reference to 
> `google::protobuf::compiler::python::Generator::~Generator()'
> main.cc:(.text+0x50d): undefined reference to 
> `google::protobuf::compiler::java::JavaGenerator::~JavaGenerator()'
> main.cc:(.text+0x521): undefined reference to 
> `google::protobuf::compiler::cpp::CppGenerator::~CppGenerator()'
> ./.libs/libprotoc.so: undefined reference to 
> `google::protobuf::TextFormat::Parser::Parser()'
> ./.libs/libprotoc.so: undefined reference to `typeinfo for 
> google::protobuf::io::ZeroCopyOutputStream'
> ./.libs/libprotoc.so: undefined reference to 
> `google::protobuf::compiler::Importer::~Importer()'
> ./.libs/libprotoc.so: undefined reference to 
> `google::protobuf::FileDescriptorProto::FileDescriptorProto()'
> ./.libs/libprotoc.so: undefined reference to 
> `google::protobuf::compiler::DiskSourceTree::DiskSourceTree()'
> ./.libs/libprotoc.so: undefined reference to 
> `google::protobuf::io::FileOutputStream::Close()'
> ./.libs/libprotoc.so: undefined reference to 
> `google::protobuf::GoogleOnceInitImpl(long*, google::protobuf::Closure*)'
> ./.libs/libprotoc.so: undefined reference to 
> `google::protobuf::internal::StringTypeHandlerBase::Delete(std::__cxx11::basic_string  
> std::char_traits, std::allocator >*)'
> ./.libs/libprotoc.so: undefined reference to 
> `google::protobuf::io::ErrorCollector::~ErrorCollector()'
> ./.libs/libprotoc.so: undefined reference to 
> `google::protobuf::io::Printer::Print(char const*, char const*, 
> std::__cxx11::basic_string, 
> std::allocator > const&, char const*, 
> std::__cxx11::basic_string, 
> std::allocator > const&, char const*, 
> std::__cxx11::basic_string, 
> std::allocator > const&)'
>
> How can I fix this?
> Thanks
>

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


[protobuf] Linking errors when compiling protobuff 2.5.0 on linux

2017-04-28 Thread Taw Moto
Hello, 

I am trying to compile protobuf with very simple arguments and it does not 
work.

CFLAGS="-fPIC -DPIC -fvisibility=hidden" CXXFLAGS="-fPIC -DPIC 
-fvisibility=hidden" ./configure --prefix=/USERS/test/protobuf-2.5.0/output 
--enable-shared --enable-static --with-pic (then make install)



main.o: In function `main':
main.cc:(.text+0xa5): undefined reference to 
`google::protobuf::compiler::cpp::CppGenerator::CppGenerator()'
main.cc:(.text+0x1c0): undefined reference to 
`google::protobuf::compiler::java::JavaGenerator::JavaGenerator()'
main.cc:(.text+0x287): undefined reference to 
`google::protobuf::compiler::python::Generator::Generator()'
main.cc:(.text+0x36e): undefined reference to 
`google::protobuf::compiler::python::Generator::~Generator()'
main.cc:(.text+0x37d): undefined reference to 
`google::protobuf::compiler::java::JavaGenerator::~JavaGenerator()'
main.cc:(.text+0x38c): undefined reference to 
`google::protobuf::compiler::cpp::CppGenerator::~CppGenerator()'
main.cc:(.text+0x4f9): undefined reference to 
`google::protobuf::compiler::python::Generator::~Generator()'
main.cc:(.text+0x50d): undefined reference to 
`google::protobuf::compiler::java::JavaGenerator::~JavaGenerator()'
main.cc:(.text+0x521): undefined reference to 
`google::protobuf::compiler::cpp::CppGenerator::~CppGenerator()'
./.libs/libprotoc.so: undefined reference to 
`google::protobuf::TextFormat::Parser::Parser()'
./.libs/libprotoc.so: undefined reference to `typeinfo for 
google::protobuf::io::ZeroCopyOutputStream'
./.libs/libprotoc.so: undefined reference to 
`google::protobuf::compiler::Importer::~Importer()'
./.libs/libprotoc.so: undefined reference to 
`google::protobuf::FileDescriptorProto::FileDescriptorProto()'
./.libs/libprotoc.so: undefined reference to 
`google::protobuf::compiler::DiskSourceTree::DiskSourceTree()'
./.libs/libprotoc.so: undefined reference to 
`google::protobuf::io::FileOutputStream::Close()'
./.libs/libprotoc.so: undefined reference to 
`google::protobuf::GoogleOnceInitImpl(long*, google::protobuf::Closure*)'
./.libs/libprotoc.so: undefined reference to 
`google::protobuf::internal::StringTypeHandlerBase::Delete(std::__cxx11::basic_string, std::allocator >*)'
./.libs/libprotoc.so: undefined reference to 
`google::protobuf::io::ErrorCollector::~ErrorCollector()'
./.libs/libprotoc.so: undefined reference to 
`google::protobuf::io::Printer::Print(char const*, char const*, 
std::__cxx11::basic_string, 
std::allocator > const&, char const*, 
std::__cxx11::basic_string, 
std::allocator > const&, char const*, 
std::__cxx11::basic_string, 
std::allocator > const&)'

How can I fix this?
Thanks

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


[protobuf] How to convert message to its extend message?

2017-04-28 Thread Peter Wang
Hello,

1. message Foo's definition,
message Foo {
  extensions 100 to 199;
}

2. extension message Baz's definition,
message Baz {
  extend Foo {
optional Baz foo_ext = 124;
  }
}

3. get the baz object's pointer by foo object use the MutableExtension() 
API,
Foo foo;
Baz* baz = foo.MutableExtension(Baz::foo_ext);
FillInMyBaz(baz);

But how to get the foo object by baz?

Best Regards,
Peter

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


[protobuf] How to convert message to it's extend message?

2017-04-28 Thread Peter Wang
Hello,

1. message Foo's definition,
message Foo {
  extensions 100 to 199;
}

2. extension message Baz's definition,
message Baz {
  extend Foo {
optional Baz foo_ext = 124;
  }
}

3. get the baz object's pointer by foo object use the MutableExtension() 
API,
Foo foo;
Baz* baz = foo.MutableExtension(Baz::foo_ext);
FillInMyBaz(baz);

But how to get the foo object by baz?

Best Regards,
Peter

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


[protobuf] Linking error

2017-04-28 Thread dbbrealtimesoftware


Hi,
I am starting to use the protobuf library and have downloaded protobuff 
v3.2.0 for windows.
I have made up my <>.proto file and generated the <>.ph.h and <>.pb.cc 
files, build the protobuf libraries, created dll files for VC2015, produces 
the proc.exe file and included everything in a VS2015 project. All compile 
correct, but the linking fails as follows:

 

1>protobuf_messages.pb.obj : error LNK2019: unresolved external symbol 
"__declspec(dllimport) public: void __cdecl 
google::protobuf::io::CodedInputStream::GetDirectBufferPointerInline(void 
const * *,int *)" 
(__imp_?GetDirectBufferPointerInline@CodedInputStream@io@protobuf@google@@QEAAXPEAPEBXPEAH@Z)
 
referenced in function "private: static bool __cdecl 
google::protobuf::internal::WireFormatLite::ReadRepeatedFixedSizePrimitive(int,unsigned
 
int,class google::protobuf::io::CodedInputStream *,class 
google::protobuf::RepeatedField *)" 
(??$ReadRepeatedFixedSizePrimitive@N$00@WireFormatLite@internal@protobuf@google@@CA_NHIPEAVCodedInputStream@io@23@PEAV?$RepeatedField@N@23@@Z)

1>protobuf_messages.pb.obj : error LNK2019: unresolved external symbol 
"__declspec(dllimport) public: static unsigned char const * __cdecl 
google::protobuf::io::CodedInputStream::ExpectTagFromArray(unsigned char 
const *,unsigned int)" 
(__imp_?ExpectTagFromArray@CodedInputStream@io@protobuf@google@@SAPEBEPEBEI@Z) 
referenced in function "private: static bool __cdecl 
google::protobuf::internal::WireFormatLite::ReadRepeatedFixedSizePrimitive(int,unsigned
 
int,class google::protobuf::io::CodedInputStream *,class 
google::protobuf::RepeatedField *)" 
(??$ReadRepeatedFixedSizePrimitive@N$00@WireFormatLite@internal@protobuf@google@@CA_NHIPEAVCodedInputStream@io@23@PEAV?$RepeatedField@N@23@@Z)

1>protobuf_messages.pb.obj : error LNK2019: unresolved external symbol 
"__declspec(dllimport) public: void __cdecl 
google::protobuf::internal::ArenaStringPtr::ClearToEmptyNoArena(class 
std::basic_string,class 
std::allocator > const *)" 
(__imp_?ClearToEmptyNoArena@ArenaStringPtr@internal@protobuf@google@@QEAAXPEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
 
referenced in function "public: virtual void __cdecl 
satscan_api_priscilla::carrier::Clear(void)" 
(?Clear@carrier@satscan_api_priscilla@@UEAAXXZ)

 

Can anybody able to help me?

 

Thanks, in advance.

 

/Dagfinn

-- 
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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.