POSIX if.h 是否需要库才能使用
Does POSIX if.h require a library to use
使用 POSIX header 文件 #include <net/if.h>
是否也需要链接库?当我使用 header 文件中的常量时,出现以下错误。
error: IFNAMSIZ
undeclared
#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 header 需要哪些库?
解决方案:问题是因为我正在用--std=c11
编译。这个问题描述了问题和解决方案:Why does C99 complain about storage sizes?
从quick google看来,定义的名称似乎是IF_NAMESIZE
,而不是IFNAMSIZ
。
您收到的错误不是来自缺少库*,而是来自编译器步骤中缺少定义,这意味着头文件未定义 IFNAMSIZ
.
*) 如果是库问题,您会看到带有 'missing external symbol' 消息的链接器错误。
使用 POSIX header 文件 #include <net/if.h>
是否也需要链接库?当我使用 header 文件中的常量时,出现以下错误。
error:
IFNAMSIZ
undeclared
#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 header 需要哪些库?
解决方案:问题是因为我正在用--std=c11
编译。这个问题描述了问题和解决方案:Why does C99 complain about storage sizes?
从quick google看来,定义的名称似乎是IF_NAMESIZE
,而不是IFNAMSIZ
。
您收到的错误不是来自缺少库*,而是来自编译器步骤中缺少定义,这意味着头文件未定义 IFNAMSIZ
.
*) 如果是库问题,您会看到带有 'missing external symbol' 消息的链接器错误。