我在linux内核中打开了ld选项--fatal-warning。如何生成一个简单的链接器警告来测试此功能?
答案 0 :(得分:1)
#include<stdio.h>
int main()
{
printf("Run !!");
static const char warning[] __attribute__((section(".gnu.warning.printf")))="My sweet linker warning";
return 0;
}
将此保存为test.c
如果您使用以下方式构建:
gcc -Wl,--fatal-warnings test.c -o my_exe
您应该收到链接器警告,但不会准备“my_exe”
现在尝试:
gcc -Wl,--no-fatal-warnings test.c -o my_exe
在这种情况下,警告将按原样报告,但不会被视为错误,它将为您准备“my_exe”。
我不确定“打开”究竟是什么意思,但如果你看到上述行为,那么我猜你很好。
如果您正在使用内核源代码,那么您需要将printf替换为源代码中已有的任何函数名称(也请更改.gnu.warning部分名称)
答案 1 :(得分:0)
谢谢大家的建议。我浏览了makefile,发现了一些抑制警告的链接器标志。我刚删除它们以生成ld警告。