Gcc 如何在Linux内核中生成简单的链接器警告?

Gcc 如何在Linux内核中生成简单的链接器警告?,gcc,linker,linux-kernel,linker-warning,Gcc,Linker,Linux Kernel,Linker Warning,我已经打开了ld选项——linux内核中的致命警告。如何生成一个简单的链接器警告来测试此功能 #include<stdio.h> int main() { printf("Run !!"); static const char warning[] __attribute__((section(".gnu.warning.printf")))="My sweet linker warning"; return 0; } 您应该收到链接器警告,它不会准备“m

我已经打开了ld选项——linux内核中的致命警告。如何生成一个简单的链接器警告来测试此功能

#include<stdio.h>

int main()
{

    printf("Run !!");
    static const char warning[] __attribute__((section(".gnu.warning.printf")))="My sweet linker warning";
    return 0;
}
您应该收到链接器警告,它不会准备“my_exe”

现在试试:

gcc -Wl,--no-fatal-warnings test.c -o my_exe
在这种情况下,警告将按原样报告,但不会被视为错误,它将为您准备“my_exe”

我不确定你所说的“打开”到底是什么意思,但如果你看到了上述行为,那么我猜你是好的


如果您正在使用内核源代码执行某些操作,则需要将printf替换为源代码中已有的任何函数名(同时更改.gnu.warning节名)

谢谢大家的建议。我浏览了makefile,发现一些链接器标志正在抑制警告。我只是删除了它们以生成ld警告。

您能更具体地说明您在做什么吗?您面临的问题是什么?虽然您的代码无法正常工作(他正在构建内核),但鉴于我们目前掌握的信息有限,它有一些优点。谢谢大家的建议。我浏览了makefile,发现一些链接器标志正在抑制警告。我只是删除了它们来生成ld警告。如果这是一个答案,你应该用更多的细节来更新它。
gcc -Wl,--no-fatal-warnings test.c -o my_exe