Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 错误:函数的隐式声明';g#u slist#u free#u full';_C_Compilation_Compiler Errors_Implicit Declaration - Fatal编程技术网

C 错误:函数的隐式声明';g#u slist#u free#u full';

C 错误:函数的隐式声明';g#u slist#u free#u full';,c,compilation,compiler-errors,implicit-declaration,C,Compilation,Compiler Errors,Implicit Declaration,我正在尝试编译一个叫做的软件。我已经在另一台机器上成功编译了它,但是现在,在许多文件中,我得到了以下错误: tomselleck@ubuntuselleck:~/Documents/FingerBellProject/libfprint-0.5.0$ sudo make [sudo] password for tomselleck: make all-recursive make[1]: Entering directory `/home/tomselleck/Documents/Finge

我正在尝试编译一个叫做的软件。我已经在另一台机器上成功编译了它,但是现在,在许多文件中,我得到了以下错误:

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
有什么想法吗?谢谢

编辑

我将发布一个它抛出错误的行的示例:

    /* stop capturing if MAX_FRAMES is reached */
    if (aesdev->blanks_count > 10 || g_slist_length(aesdev->strips) >= MAX_FRAMES) {
        struct fp_img *img;

        fp_dbg("sending stop capture.... blanks=%d  frames=%d", aesdev->blanks_count, g_slist_length(aesdev->strips));
        /* send stop capture bits */
        aes_write_regv(dev, capture_stop, G_N_ELEMENTS(capture_stop), stub_capture_stop_cb, NULL);
        aesdev->strips = g_slist_reverse(aesdev->strips);
        img = aes_assemble(aesdev->strips, aesdev->strips_len,
            FRAME_WIDTH, FRAME_HEIGHT);

        g_slist_free_full(aesdev->strips, g_free);<---- Error here

        aesdev->strips = NULL;
        aesdev->strips_len = 0;
        aesdev->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);
}
/*如果达到最大帧数,请停止捕获*/
如果(aesdev->blanks_count>10 | | g|u slist_length(aesdev->strips)>=最大帧数){
结构fp_img*img;
fp_dbg(“发送停止捕获…空白=%d帧=%d”,aesdev->blanks_计数,g_slist_长度(aesdev->strips));
/*发送停止捕获位*/
aes_write_regv(dev、capture_stop、G_N_元素(capture_stop)、存根_capture_stop_cb、NULL);
aesdev->strips=g_slist_reverse(aesdev->strips);
img=aes\u组装(aesdev->strips,aesdev->strips\u len,
框架宽度、框架高度);
g_slist_free_full(aesdev->strips,g_free);strips=NULL;
aesdev->strips\u len=0;
aesdev->空白计数=0;
fpi\u imgdev\u图像捕获(开发、img);
fpi\u imgdev\u报告\u手指\u状态(开发,错误);
/*标记机完成后将重新触发手指检测回路*/
fpi\u ssm\u标记完成(ssm);
/*采集完成:恢复默认增益值*/
恢复增益();
}否则{
/*获得下一条*/
fpi_ssm_跳转_至_状态(ssm、捕获_请求_条);
}
输出:
g_自由(数据);
自由转账(转账);
}

  • 函数的首次使用先于其定义
  • 该函数没有原型,或者
  • 缺少所需的头文件
在首次使用之前,确保文本或标题中有原型,或将函数移到文件的前面。

…另外(插入)不要使用sudo以root运行
Make
。这在一定程度上是因为我们可以想象在构建过程中会有一些东西断裂,这些东西会踩在一些重要的东西上(如果不是root的话,这是可以避免的),同时还有一个普遍的原则,即尽可能少地成为root是好的


如果确实要在系统位置(如
/usr/local
)安装某些东西,请按自己的方式构建,然后执行
make-n install
,并检查将要安装的内容(假定您构建的东西有安装目标)。如果一切正常,只需执行
sudo make install

对不起,我不太清楚您的意思,我对c。。。我正在编译它,然后将它包装在java包装器中。@Tomcelic在源文件中查找
g\u slist\u free\u full
函数的位置。应该有两个位置—一个在.h文件中,另一个在C/CPP文件中。确保.h文件是
#在源文件顶部看到错误的地方包含
-d。