我正在尝试使用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.
被退回,但无法编译。
我试图在Google上搜索此信息,并获得了将
-fPIC -shared
放在-g
之外的信息,但它没有解决问题我想知道为什么这是问题,我应该如何解决。
先感谢您
最佳答案
重命名您的源文件(当前称为Sourcepuzzle
)以具有.c
扩展名,例如source.c
。
目前,GCC似乎无法将您的程序标识为C源,并假定它是C ++。 .eh_frame
与C ++异常有关,如果您有C程序,则不相关。
或者如果Sourcepuzzle
应该是makefile中的变量,则需要在命令中使用变量的值,即$(Sourcepuzzle)
。在这种情况下,建议您将makefile变量命名为大写,这是公认的惯例。