C:不会创建.eh_frame_hdr表

时间:2018-10-19 11:52:31

标签: c gcc makefile gcc-warning

我试图使用makefile编译一些代码

puzzle.o:
    gcc -o puzzle.o Sourcepuzzle -Wall -Werror -g

但有警告和错误提示

/usr/bin/ld: warning: Cannot create .eh_frame_hdr section, --eh-frame-hdr 
ignored.
/usr/bin/ld: error in puzzle.o(.eh_frame); no .eh_frame_hdr table will be 
created.

已返回,但无法编译。

我试图对此进行搜索,并获得了将-fPIC -shared放在-g之外的信息,但并不能解决问题

我想知道为什么这是问题,我应该如何解决。

提前谢谢

1 个答案:

答案 0 :(得分:1)

将您的源文件(当前称为Sourcepuzzle)重命名为具有.c扩展名,例如source.c

目前,GCC似乎无法将您的程序标识为C源,并假定它是C ++。 .eh_frame与C ++异常有关,如果您有C程序,则不相关。

或者如果Sourcepuzzle应该是您的Makefile中的变量,则需要在命令中使用变量的值,即$(Sourcepuzzle)。在这种情况下,建议您将makefile变量命名为大写,这是公认的约定。