title: Why crc32 value require -lz
body: <p>I am generating a crc32 value by using <code>crc32(initial_crc_value,data,data_length);</code> . if I am not using <code>-lz</code> in linker options, I am getting linker error as  </p>
  
  <blockquote>
    <p>"undefined reference to crc32".</p>
  </blockquote>
  
  <p>I did not include any <code>zlib.h</code>. So, in which header file <code>crc32()</code> is declared? Why linker option <code>-lz</code> is sufficient to compile?</p>