3

We're using zlib.lib in our project and after some rebuild of this lib I can no longer compile a project. One of the errors says:

error LNK2019: unresolved external symbol deflateEnd referenced in function lws_extension_callback_deflate_frame

I dumpbin'ed my library and here what I have:

013 00000000 UNDEF  notype ()    External     | deflateEnd
027 00000000 UNDEF  notype ()    External     | deflateEnd
013 000013B0 SECT5  notype ()    External     | deflateEnd
044 0000000C SECT6  notype       Static       | $unwind$deflateEnd
045 0000000C SECT7  notype       Static       | $pdata$deflateEnd
00E 00000000 UNDEF  notype ()    External     | deflateEnd

How to read it?

  1. Why symbol 013 appeared twice?
  2. Why the second column contain zeros mostly and only one have numbers. What are this numbers?
  3. What does notype mean? Why sometimes there're braces () and sometimes - not?
  4. What External means?
  5. What are this $unwind$ and $pdata$?
  6. And finally, having all this information is it possible to say why I have unresolved symbol?
nikitablack
  • 4,359
  • 2
  • 35
  • 68
  • 2
    I didn't find documentation, so I'm just guessing: External are symbols that are expected to be satisfied by another library, just like the keyword external in C code implies. $unwind$ and $pdata$ are both meant for exception handling (SEH). see http://www.keil.com/support/man/docs/armasm/armasm_dom1359731157033.htm for a more detailed explanation – Sascha Jun 30 '16 at 12:20
  • 2
    External in this case means it's visible externally. "The fifth column (Static, External) tells whether the symbol is visible only within that object, or whether it is public (visible externally). A Static symbol, _sym, wouldn't be linked to a Public symbol _sym; these would be two different instances of functions named _sym. " - https://msdn.microsoft.com/en-us/library/b842y285.aspx – michaelmoo Feb 16 '18 at 16:49

0 Answers0