【问题标题】:Implicit declaration of function in spite of including header file尽管包含头文件,但隐式声明函数
【发布时间】:2013-11-12 19:52:33
【问题描述】:

我在源文件myfunc.c 中定义了一个函数myfunc,并在头文件myfunc.h 中声明。这两个文件都是库的一部分。

在另一个项目的 (projA) 源文件中,我将头文件包括为:

#include "myfunc.h"

并正确使用函数(参数数量、顺序等)。

我已经编辑了 Makefile,所以它的包含列表中包含 myfunc.h 的路径 (-I)。

但是,我仍然收到有关隐式声明的警告。由于 projA 设置了 warning = error,因此编译失败。

注意:这不是像 here 那样的 Eclipse 问题,或者像 here 那样缺少标头,或者是未声明的函数。

附录

int myfunc(char * source, size_t source_len, char * dest, size_t dest_len)
{
    // manipulation
    strncpy(dest, source, dest_len);
    // other stuff
}

【问题讨论】:

  • 你能告诉我们你的功能吗?
  • 看看这个gcc.gnu.org/onlinedocs/cpp/Ifdef.html你可能需要把它添加到你的头文件中
  • @EyeOfTheHawks 谢谢!你能把你的答案放在答案部分吗?我会接受的。有人决定为两个不同的标题使用相同的 MACRO,而我想要的那个没有被包括在内。 叹息
  • @TonyTheLion 添加函数声明...
  • @Sagar 好了,添加它作为答案

标签: c gcc header compiler-errors compiler-warnings


【解决方案1】:

看看这个https://gcc.gnu.org/onlinedocs/cpp/Ifdef.html
您可能需要将其添加到您的头文件中以避免重复包含

【讨论】:

    猜你喜欢
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2017-10-16
    • 2020-09-01
    • 1970-01-01
    • 2021-01-26
    相关资源
    最近更新 更多