C: нет .eh_frame_hdr таблица будет создана - PullRequest
0 голосов
/ 19 октября 2018

Я пытался скомпилировать некоторый код, используя 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 голосов
/ 19 октября 2018

Переименуйте исходный файл, который в настоящее время называется Sourcepuzzle, с расширением .c, например source.c.

. В настоящее время GCC не может определить вашу программу как источник C и предполагает, что это C ++,.eh_frame относится к исключениям C ++ и не может быть релевантным, если у вас есть программа на языке C.

Или, если Sourcepuzzle должна быть переменной в вашем make-файле, вам нужно использовать значение переменной в команде, т.е. $(Sourcepuzzle).В этом случае также рекомендуется назвать переменную makefile в верхнем регистре, что является принятым соглашением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...