POSIX if.h是否需要使用库

时间:2016-06-11 10:04:28

标签: c linux posix

使用POSIX头文件#include <net/if.h>是否需要链接库?当我从头文件中使用常量时,我​​得到以下错误。

  

错误:IFNAMSIZ未声明

#include <net/if.h>

int main(int argc, char** argv) {
    char f[IFNAMSIZ]; // compiler error
    return 0;
}

如果我需要一个图书馆,它的名字是什么?像gcc -o test test.c -lif --std=c11这样的东西不是有效的库。谷歌搜索这个没有任何令人沮丧的事情。

* PS:你如何找出POSIX标题所需的库?

解决方案:问题是因为我正在使用--std=c11进行编译。此问题描述了问题和解决方案:Why does C99 complain about storage sizes?

1 个答案:

答案 0 :(得分:2)

quick google开始,似乎定义的名称为IF_NAMESIZE,而不是IFNAMSIZ

您获得的错误不是来自缺少的库*,而是来自编译器步骤中缺少的定义,这意味着头文件未定义IFNAMSIZ

*)如果是库问题,您会看到链接器错误,并显示“缺少外部符号”消息。