【发布时间】:2014-08-05 00:31:54
【问题描述】:
我目前正在用 C 语言编写一个程序。一切正常,但是在尝试“make”时我收到了一些警告:
src/command.c: In function ‘cmd_create’:
src/command.c:43:3: warning: implicit declaration of function ‘iterator_init’ [- Wimplicit-function-declaration]
iterator_init(&it);
^
src/command.c:49:6: warning: implicit declaration of function ‘iterator_destroy’ [- Wimplicit-function-declaration]
iterator_destroy(&it);
^
src/command.c: At top level:
src/command.c:218:6: warning: conflicting types for ‘iterator_init’ [enabled by default]
void iterator_init(iterator *it) {
^
src/command.c:43:3: note: previous implicit declaration of ‘iterator_init’ was here
iterator_init(&it);
^
src/command.c:245:6: warning: conflicting types for ‘iterator_destroy’ [enabled by default]
void iterator_destroy(iterator *it) {
^
src/command.c:49:6: note: previous implicit declaration of ‘iterator_destroy’ was here
iterator_destroy(&it);
^
我的研究表明,这通常发生在函数在实际调用之后声明时。
但是我已经将函数的原型正确地放在了我的头文件中,所以想知道还有什么可能导致这种情况。我的 makefile 可能设置不正确吗?
【问题讨论】:
-
请不要发布代码链接,发布实际代码。
-
这是试图让程序编译的基本内容。只需注释掉代码块,直到它注释掉。然后开始添加位并阅读错误消息
-
你是否包含过你的头文件?为获得最佳效果,请始终在第一行包含相应的标题。
-
Oli Charleswoth:我真的应该粘贴 500 行代码吗? Deduclicator,是的,我的头文件都包含在内。我在每个源文件中都包含我的“main.h”,并且所有相应的头文件都包含在 main.h
标签: c conflict implicit-declaration