限制C中的库链接

时间:2015-02-10 17:29:14

标签: c gcc

如果我希望gcc编译器在我包含stdlib.h或特定标头时抛出错误,我应该使用哪些标志?我不想使用-nostdlib标志,因为它没有链接任何标准库。

1 个答案:

答案 0 :(得分:3)

对于每个头文件都有一个包含保护,所以我猜你可以尝试像这样检查它

#ifdef _STDLIB_H
#error "You should not include stdlib.h"
#endif

然后您可以将其应用于其他标头。当然,这只适用于特定的c标准库,在这种情况下,我从glibc中的stdlib.h获取了包含警示。如果您在检查后包含stdlib.h,它将无效。

此外,头文件不是库,它包含来自库的定义和函数原型,如果您不希望程序链接到标准库,则除了gcc -nostdlib之外没有其他选项AFAIK