asmaloney/libE57Format

If NOT enable E57_DEBUG, error: ‘struct e57::BlobSectionHeader’ has no member named ‘dump’

jiapei100 opened this issue · 2 comments

It looks I have to enable E57_DEBUG ?? Otherwise, I'll obtain the following error messages:

....../libE57Format/src/BlobNodeImpl.cpp:60:14: error: ‘struct e57::BlobSectionHeader’ has no member named ‘dump’
   60 |       header.dump(); //???
      |              ^~~~
....../libE57Format/src/Decoder.cpp: In static member function ‘static std::shared_ptr<e57::Decoder> e57::Decoder::DecoderFactory(unsigned int, const e57::CompressedVectorNodeImpl*, std::vector<e57::SourceDestBuffer>&, const ustring&)’:
....../libE57Format/src/Decoder.cpp:54:16: error: ‘using element_type = class e57::NodeImpl’ {aka ‘class e57::NodeImpl’} has no member named ‘dump’
   54 |    decodeNode->dump( 2 );
      |                ^~~~
....../libE57Format/src/Decoder.cpp: In member function ‘size_t e57::BitpackIntegerDecoder<RegisterT>::inputProcessAligned(const char*, size_t, size_t)’:
....../libE57Format/src/Decoder.cpp:797:7: error: there are no arguments to ‘dump’ that depend on a template parameter, so a declaration of ‘dump’ must be available [-fpermissive]
  797 |       dump( 4 );
      |       ^~~~
....../libE57Format/src/Decoder.cpp:797:7: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
....../libE57Format/src/Encoder.cpp: In static member function ‘static std::shared_ptr<e57::Encoder> e57::Encoder::EncoderFactory(unsigned int, std::shared_ptr<e57::CompressedVectorNodeImpl>, std::vector<e57::SourceDestBuffer>&, e57::ustring&)’:
....../libE57Format/src/Encoder.cpp:61:16: error: ‘using element_type = class e57::NodeImpl’ {aka ‘class e57::NodeImpl’} has no member named ‘dump’
   61 |    encodeNode->dump( 2 );
      |                ^~~~
....../libE57Format/src/CompressedVectorWriterImpl.cpp: In member function ‘void e57::CompressedVectorWriterImpl::close()’:
....../libE57Format/src/CompressedVectorWriterImpl.cpp:198:14: error: ‘struct e57::CompressedVectorSectionHeader’ has no member named ‘dump’
  198 |       header.dump( 4 ); //???
      |              ^~~~
....../libE57Format/src/CompressedVectorReaderImpl.cpp: In member function ‘void e57::CompressedVectorReaderImpl::feedPacketToDecoders(uint64_t)’:
....../libE57Format/src/CompressedVectorReaderImpl.cpp:394:21: error: ‘struct e57::DecodeChannel’ has no member named ‘dump’
  394 |             channel.dump( 8 );
      |                     ^~~~
....../libE57Format/src/CompressedVectorWriterImpl.cpp:218:7: error: ‘dump’ was not declared in this scope
  218 |       dump( 4 );
      |       ^~~~
....../libE57Format/src/Encoder.cpp: In member function ‘uint64_t e57::BitpackIntegerEncoder<RegisterT>::processRecords(size_t)’:
....../libE57Format/src/Encoder.cpp:666:4: error: there are no arguments to ‘dump’ that depend on a template parameter, so a declaration of ‘dump’ must be available [-fpermissive]
  666 |    dump( 4 );
      |    ^~~~
....../libE57Format/src/Encoder.cpp:666:4: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
make[2]: *** [CMakeFiles/E57Format.dir/build.make:79: CMakeFiles/E57Format.dir/src/BlobNodeImpl.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
....../libE57Format/src/Encoder.cpp:803:7: error: there are no arguments to ‘dump’ that depend on a template parameter, so a declaration of ‘dump’ must be available [-fpermissive]
  803 |       dump( 4 );
      |       ^~~~
....../libE57Format/src/Encoder.cpp: In member function ‘bool e57::BitpackIntegerEncoder<RegisterT>::registerFlushToOutput()’:
....../libE57Format/src/Encoder.cpp:830:4: error: there are no arguments to ‘dump’ that depend on a template parameter, so a declaration of ‘dump’ must be available [-fpermissive]
  830 |    dump( 4 );
      |    ^~~~
....../libE57Format/src/Encoder.cpp: In member function ‘virtual uint64_t e57::ConstantIntegerEncoder::processRecords(size_t)’:
....../libE57Format/src/Encoder.cpp:886:4: error: ‘dump’ was not declared in this scope
  886 |    dump( 4 );
      |    ^~~~
....../libE57Format/src/Decoder.cpp: In instantiation of ‘size_t e57::BitpackIntegerDecoder<RegisterT>::inputProcessAligned(const char*, size_t, size_t) [with RegisterT = long unsigned int; size_t = long unsigned int]’:
....../libE57Format/src/Decoder.h:139:14:   required from here
....../libE57Format/src/Decoder.cpp:797:11: error: ‘dump’ was not declared in this scope
  797 |       dump( 4 );
      |       ~~~~^~~~~
....../libE57Format/src/Decoder.cpp: In instantiation of ‘size_t e57::BitpackIntegerDecoder<RegisterT>::inputProcessAligned(const char*, size_t, size_t) [with RegisterT = unsigned int; size_t = long unsigned int]’:
....../libE57Format/src/Decoder.h:139:14:   required from here
....../libE57Format/src/Decoder.cpp:797:11: error: ‘dump’ was not declared in this scope
....../libE57Format/src/Decoder.cpp: In instantiation of ‘size_t e57::BitpackIntegerDecoder<RegisterT>::inputProcessAligned(const char*, size_t, size_t) [with RegisterT = short unsigned int; size_t = long unsigned int]’:
....../libE57Format/src/Decoder.h:139:14:   required from here
....../libE57Format/src/Decoder.cpp:797:11: error: ‘dump’ was not declared in this scope
....../libE57Format/src/Decoder.cpp: In instantiation of ‘size_t e57::BitpackIntegerDecoder<RegisterT>::inputProcessAligned(const char*, size_t, size_t) [with RegisterT = unsigned char; size_t = long unsigned int]’:
....../libE57Format/src/Decoder.h:139:14:   required from here
....../libE57Format/src/Decoder.cpp:797:11: error: ‘dump’ was not declared in this scope
....../libE57Format/src/Encoder.cpp: In instantiation of ‘uint64_t e57::BitpackIntegerEncoder<RegisterT>::processRecords(size_t) [with RegisterT = long unsigned int; uint64_t = long unsigned int; size_t = long unsigned int]’:
....../libE57Format/src/Encoder.h:151:16:   required from here
....../libE57Format/src/Encoder.cpp:666:8: error: ‘dump’ was not declared in this scope
  666 |    dump( 4 );
      |    ~~~~^~~~~
....../libE57Format/src/Encoder.cpp:803:11: error: ‘dump’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
  803 |       dump( 4 );
      |       ~~~~^~~~~
....../libE57Format/src/Encoder.cpp: In instantiation of ‘bool e57::BitpackIntegerEncoder<RegisterT>::registerFlushToOutput() [with RegisterT = long unsigned int]’:
....../libE57Format/src/Encoder.h:152:12:   required from here
....../libE57Format/src/Encoder.cpp:830:8: error: ‘dump’ was not declared in this scope
  830 |    dump( 4 );
      |    ~~~~^~~~~
....../libE57Format/src/Encoder.cpp: In instantiation of ‘uint64_t e57::BitpackIntegerEncoder<RegisterT>::processRecords(size_t) [with RegisterT = unsigned int; uint64_t = long unsigned int; size_t = long unsigned int]’:
....../libE57Format/src/Encoder.h:151:16:   required from here
....../libE57Format/src/Encoder.cpp:666:8: error: ‘dump’ was not declared in this scope
  666 |    dump( 4 );
      |    ~~~~^~~~~
....../libE57Format/src/Encoder.cpp:803:11: error: ‘dump’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
  803 |       dump( 4 );
      |       ~~~~^~~~~
....../libE57Format/src/Encoder.cpp: In instantiation of ‘bool e57::BitpackIntegerEncoder<RegisterT>::registerFlushToOutput() [with RegisterT = unsigned int]’:
....../libE57Format/src/Encoder.h:152:12:   required from here
....../libE57Format/src/Encoder.cpp:830:8: error: ‘dump’ was not declared in this scope
  830 |    dump( 4 );
      |    ~~~~^~~~~
....../libE57Format/src/Encoder.cpp: In instantiation of ‘uint64_t e57::BitpackIntegerEncoder<RegisterT>::processRecords(size_t) [with RegisterT = short unsigned int; uint64_t = long unsigned int; size_t = long unsigned int]’:
....../libE57Format/src/Encoder.h:151:16:   required from here
....../libE57Format/src/Encoder.cpp:666:8: error: ‘dump’ was not declared in this scope
  666 |    dump( 4 );
      |    ~~~~^~~~~
....../libE57Format/src/Encoder.cpp:803:11: error: ‘dump’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
  803 |       dump( 4 );
      |       ~~~~^~~~~
....../libE57Format/src/Encoder.cpp: In instantiation of ‘bool e57::BitpackIntegerEncoder<RegisterT>::registerFlushToOutput() [with RegisterT = short unsigned int]’:
....../libE57Format/src/Encoder.h:152:12:   required from here
....../libE57Format/src/Encoder.cpp:830:8: error: ‘dump’ was not declared in this scope
  830 |    dump( 4 );
      |    ~~~~^~~~~
....../libE57Format/src/Encoder.cpp: In instantiation of ‘uint64_t e57::BitpackIntegerEncoder<RegisterT>::processRecords(size_t) [with RegisterT = unsigned char; uint64_t = long unsigned int; size_t = long unsigned int]’:
....../libE57Format/src/Encoder.h:151:16:   required from here
....../libE57Format/src/Encoder.cpp:666:8: error: ‘dump’ was not declared in this scope
  666 |    dump( 4 );
      |    ~~~~^~~~~
....../libE57Format/src/Encoder.cpp:803:11: error: ‘dump’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
  803 |       dump( 4 );
      |       ~~~~^~~~~
....../libE57Format/src/Encoder.cpp: In instantiation of ‘bool e57::BitpackIntegerEncoder<RegisterT>::registerFlushToOutput() [with RegisterT = unsigned char]’:
....../libE57Format/src/Encoder.h:152:12:   required from here
....../libE57Format/src/Encoder.cpp:830:8: error: ‘dump’ was not declared in this scope
  830 |    dump( 4 );
      |    ~~~~^~~~~
make[2]: *** [CMakeFiles/E57Format.dir/build.make:135: CMakeFiles/E57Format.dir/src/CompressedVectorReaderImpl.cpp.o] Error 1
make[2]: *** [CMakeFiles/E57Format.dir/build.make:191: CMakeFiles/E57Format.dir/src/Encoder.cpp.o] Error 1
make[2]: *** [CMakeFiles/E57Format.dir/build.make:177: CMakeFiles/E57Format.dir/src/Decoder.cpp.o] Error 1
make[2]: *** [CMakeFiles/E57Format.dir/build.make:149: CMakeFiles/E57Format.dir/src/CompressedVectorWriterImpl.cpp.o] Error 1
make[2]: Leaving directory '....../libE57Format/build'
make[1]: *** [CMakeFiles/Makefile2:140: CMakeFiles/E57Format.dir/all] Error 2
make[1]: Leaving directory '....../libE57Format/build'
make: *** [Makefile:139: all] Error 2

How are you setting E57_DEBUG?

I turned it off when running cmake and it builds fine. In fact the GutHub action builds with it off for every commit (see Configure (Release) step).

So it sounds like you have something else going on here...

What does your cmake command look like?

If you have any additional info or can explain how to reproduce the problem, please feel free to reopen this issue.