bfd.h должен был включить libiberty/ansidecl.h в Ubuntu 14.04?
Пакет binutils, похоже, изменен, так как включает в себя каталог libiberty.h
переехал в /usr/include/libiberty
Таким образом, существует вероятность неправильного включения в bfd.h
относительно ansidecl.h
,
Получение этих ошибок компиляции при использовании утилит трассировки binutils
/usr/include/libiberty/libiberty.h: In function ‘basename’:
/usr/include/libiberty/libiberty.h:110:38: error: expected declaration specifiers before ‘ATTRIBUTE_RETURNS_NONNULL’
extern char *basename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
^
/usr/include/libiberty/libiberty.h:121:45: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ATTRIBUTE_RETURNS_NONNULL’
extern const char *lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
^
/usr/include/libiberty/libiberty.h:126:49: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ATTRIBUTE_RETURNS_NONNULL’
extern const char *dos_lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
^
/usr/include/libiberty/libiberty.h:132:50: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ATTRIBUTE_RETURNS_NONNULL’
extern const char *unix_lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
Путем изменения bfd.h
включать /usr/include/libiberty/ansidecl.h
все прошло хорошо в моей компиляции.
Пожалуйста, какие-либо советы по этому вопросу? Благодарю.
1 ответ
Как сообщают Эдуардо Абинадер (автор вопроса) и Шон Джекман как ошибка 58689 и MSG 00135 соответственно, исходя из обмененных данных...
Это проблема, вызванная установкой более старой библиотеки в системе Ubuntu, я полагаю, что это вина ни Ubuntu, ни binutils, но выглядит как проблема обновления системы. Решение включено в сам вопрос.
PS: Но главное, у нас был ответ тогда и сейчас. Более подробную информацию можно найти в ссылках! Пожалуйста, улучшите этот ответ, если требуется.:)