我试图使用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
之外的信息,但并不能解决问题
我想知道为什么这是问题,我应该如何解决。
提前谢谢
答案 0 :(得分:1)
将您的源文件(当前称为Sourcepuzzle
)重命名为具有.c
扩展名,例如source.c
。
目前,GCC似乎无法将您的程序标识为C源,并假定它是C ++。 .eh_frame
与C ++异常有关,如果您有C程序,则不相关。
或者如果Sourcepuzzle
应该是您的Makefile中的变量,则需要在命令中使用变量的值,即$(Sourcepuzzle)
。在这种情况下,建议您将makefile变量命名为大写,这是公认的约定。