не мог считать символы: Архив не имеет никакого индекса; выполненный ranlib для добавления того

я пытался делать библиотеку с

ar -r -c -s libtestlib.a *.o

как дали в этом учебном http://matrixprogramming.com/Tools/CompileLink.html

Но при соединении с библиотекой после ошибки прибывает

g++ -o uni2asc uni2asc.o -L../Modules -ltestlib

../Modules/libtestlib.a: could not read symbols: Archive has no index; run ranlib to add one
collect2: ld returned 1 exit status

я попробовал ranlib также, но тем не менее ошибка прибывает.. Я работаю с ubuntu9.10, предложите меня некоторое решение для этого

25
задан Amarghosh 4 May 2010 в 12:40
поделиться

1 ответ

Ваша команда архивирования выглядит нормально, можете ли вы попробовать следующее. 1) Получите объектные файлы в архиве / статической библиотеке

ar -t libtestlib.a

2) Для каждого объектного файла (скажем, foo.o) из шага 1

file foo.o 

Это сообщит вам формат объектного файла . Если объектный файл был скомпилирован для другой платформы, это привело бы к ошибке построения индекса для архива. Чтобы исправить это, вам нужно будет перекомпилировать эти файлы.
3) Для каждого объектного файла с шага 1 выполните

nm foo.o

. Это выведет список символов, экспортированных из файла.

23
ответ дан 28 November 2019 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: