я пытался делать библиотеку с
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, предложите меня некоторое решение для этого
Ваша команда архивирования выглядит нормально, можете ли вы попробовать следующее. 1) Получите объектные файлы в архиве / статической библиотеке
ar -t libtestlib.a
2) Для каждого объектного файла (скажем, foo.o) из шага 1
file foo.o
Это сообщит вам формат объектного файла . Если объектный файл был скомпилирован для другой платформы, это привело бы к ошибке построения индекса для архива.
Чтобы исправить это, вам нужно будет перекомпилировать эти файлы.
3) Для каждого объектного файла с шага 1 выполните
nm foo.o
. Это выведет список символов, экспортированных из файла.