使用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?
答案 0 :(得分:2)
从quick google开始,似乎定义的名称为IF_NAMESIZE
,而不是IFNAMSIZ
。
您获得的错误不是来自缺少的库*,而是来自编译器步骤中缺少的定义,这意味着头文件未定义IFNAMSIZ
。
*)如果是库问题,您会看到链接器错误,并显示“缺少外部符号”消息。