0

我在 linux 内核中打开了 ld 选项 --fatal-warning 。如何生成简单的链接器警告来测试此功能?

4

2 回答 2

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 部分名称)

于 2013-04-12T19:48:03.747 回答
0

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

于 2015-02-24T19:50:50.700 回答