gpt4 book ai didi

c - 隐式声明静态的问题(编译自定义的 mupdf 库)

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:44 24 4
gpt4 key购买 nike

我正在使用 mupdf 库中某些函数的自定义版本编译 mupdf。有两个函数似乎相互调用,所以当我创建它们的 _custom 版本时,编译时会出现错误。

pc@pc:~/sviluppo/mupdf-0.9$ make
CC build/debug/obj_print.o
fitz/obj_print.c: In function ‘fmt_array_custom’:
fitz/obj_print.c:191:4: warning: implicit declaration of function ‘fmt_obj_custom’
fitz/obj_print.c: At top level:
fitz/obj_print.c:304:13: warning: conflicting types for ‘fmt_obj_custom’
fitz/obj_print.c:304:13: error: static declaration of ‘fmt_obj_custom’ follows non-static declaration
fitz/obj_print.c:191:4: note: previous implicit declaration of ‘fmt_obj_custom’ was here
make: *** [build/debug/obj_print.o] Errore 1

怎么了?这些函数的默认版本已经以相同的方式相互调用。

最佳答案

在第 191 行中,函数 fmt_array_custom 在没有事先声明的情况下被调用。因此,编译器隐含地假设了一个声明(非static)。

稍后在第 304 行,它看到了实际的函数声明/定义,它是 static。这是一个冲突。

为了解决这个问题,您可以在第 191 行之前添加一个声明。只需从第 304 行复制函数原型(prototype)(不带函数体)。

关于c - 隐式声明静态的问题(编译自定义的 mupdf 库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7498190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com