Я составляю программу на AIX. Она составлена успешно, но дает следующие предупреждения:дубликат символа и краха приложения
ld: 0711-224 WARNING: Duplicate symbol: .basename
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
Я пытался найти этот символ, я нашел в моем файле «common.o».
nm -X64 -f common.o | fgrep '.basename'
.basename T 3776 120
Но когда найти этот символ на исполняемый файл я нахожу следующее:
nm -X64 CCF | fgrep '.basename'
.basename T 4295089984 120
.basename T 4295174672
.basename t 4295174672 40
Могу ли я отображать имя библиотеки, которая содержит этот символ?
Этот символ присутствует в моем исходном файле? (Может быть это звучит глупо, но я не знаю)
меня найти ответ на этот вопрос, что это может быть прослежено в источнике.
- Какие шаги следует предпринять, чтобы удалить это предупреждение? Также этот дублирующий символ может вызвать сбой приложения? В моем случае это сбой.
Вы взяли предложение линкера? 'Используйте параметр -bloadmap или -bnoquiet, чтобы получить дополнительную информацию.' –
Я не пытался, но я меняю имя функции в моих источниках. Теперь дублированного предупреждения о символах больше нет. – QMG