代码之家  ›  专栏  ›  技术社区  ›  DarthRubik

对未链接的节生成警告

  •  2
  • DarthRubik  · 技术社区  · 7 年前

    C 代码和我的启动代码运行良好…..然后我尝试链接 C++

    经过一些调试,我发现链接器脚本没有将 .sbss 任何地方(我把 .bss 某个地方,但不是 .sbss公司 ). 所以我的问题是:

    当某个部分未链接到程序时,是否可以生成警告?。。。。谷歌搜索什么也找不到,我浏览了链接器的手册,但没有结果

    1 回复  |  直到 7 年前
        1
  •  0
  •   Employed Russian    7 年前

    当某个部分未链接到程序时,是否可以生成警告?

    我不认为在链接器中可以这样做,但您可以在后链接步骤中轻松实现它:

    readelf -WS a.out | grep -q ' \.sbss' || { echo "Did not find .sbss!" >&2; false; }
    

    这样的警告毫无用处,因为它会开火 .

    考虑:

    • main.o 定义 main 也没有提到别的。
    • foo.o 定义 foo .x , .y .z . libfoo.a

    现在,当你与 gcc main.o -lfoo , 福奥 被拉到链接中(因为没有指向它的引用),您的警告现在将告诉您 .x条 .y.年 .z条 没有链接到程序中。