title: Error: implicit declaration of function 'g_slist_free_full'
body: <p>I am trying to compile some software called <a href="http://www.freedesktop.org/wiki/Software/fprint/libfprint" rel="nofollow">libfprint</a>. I had successfully compiled it on another machine but now however, in a number of files, I get the following error:</p>
  
  <pre><code>tomselleck@ubuntuselleck:~/Documents/FingerBellProject/libfprint-0.5.0$ sudo make
  [sudo] password for tomselleck: 
  make  all-recursive
  make[1]: Entering directory `/home/tomselleck/Documents/FingerBellProject/libfprint-0.5.0'
  Making all in libfprint
  make[2]: Entering directory `/home/tomselleck/Documents/FingerBellProject/libfprint-0.5.0/libfprint'
    CC       libfprint_la-aes1610.lo
  drivers/aes1610.c: In function 'capture_read_strip_cb':
  drivers/aes1610.c:619: error: implicit declaration of function 'g_slist_free_full'
  make[2]: *** [libfprint_la-aes1610.lo] Error 1
  make[2]: Leaving directory `/home/tomselleck/Documents/FingerBellProject/libfprint-0.5.0/libfprint'
  make[1]: *** [all-recursive] Error 1
  make[1]: Leaving directory `/home/tomselleck/Documents/FingerBellProject/libfprint-0.5.0'
  make: *** [all] Error 2
  </code></pre>
  
  <p>Any ideas? Thanks !</p>
  
  <p><strong>Edit</strong></p>
  
  <p>I'll post an example of the line it is throwing an error on:</p>
  
  <pre><code>    /* stop capturing if MAX_FRAMES is reached */
      if (aesdev-&gt;blanks_count &gt; 10 || g_slist_length(aesdev-&gt;strips) &gt;= MAX_FRAMES) {
          struct fp_img *img;
  
          fp_dbg("sending stop capture.... blanks=%d  frames=%d", aesdev-&gt;blanks_count, g_slist_length(aesdev-&gt;strips));
          /* send stop capture bits */
          aes_write_regv(dev, capture_stop, G_N_ELEMENTS(capture_stop), stub_capture_stop_cb, NULL);
          aesdev-&gt;strips = g_slist_reverse(aesdev-&gt;strips);
          img = aes_assemble(aesdev-&gt;strips, aesdev-&gt;strips_len,
              FRAME_WIDTH, FRAME_HEIGHT);
  
          g_slist_free_full(aesdev-&gt;strips, g_free);&lt;---- Error here
  
          aesdev-&gt;strips = NULL;
          aesdev-&gt;strips_len = 0;
          aesdev-&gt;blanks_count = 0;
          fpi_imgdev_image_captured(dev, img);
          fpi_imgdev_report_finger_status(dev, FALSE);
          /* marking machine complete will re-trigger finger detection loop */
          fpi_ssm_mark_completed(ssm);
          /* Acquisition finished: restore default gain values */
          restore_gain();
      } else {
          /* obtain next strip */
          fpi_ssm_jump_to_state(ssm, CAPTURE_REQUEST_STRIP);
      }
  
  out:
      g_free(data);
      libusb_free_transfer(transfer);
  }
  </code></pre>