2014-08-28 4 views
6

Я строю V8 и по умолчанию он создается как «тонкий» архив, где файлы .a по существу просто содержат указатели на объектные файлы в вашей файловой системе, а не содержат сами файлы объектов. См. man ar.Поверните тонкий архив в нормальный

Я хочу, чтобы эта библиотека была размещена в центральном месте, чтобы другие люди могли ссылаться на нее, и было бы намного проще обеспечить нормальный файл архива, а не обеспечивать стайку объектных файлов.

Как взять тонкие архивы, созданные сборкой, и превратить их в обычные? Я предполагаю, что это будет так же просто, как перечисление объектных файлов в тонком архиве и перестроение архива с помощью них, но я не знаю, какую команду можно использовать для отображения объектных файлов архива.

ответ

17

После дополнительных исследований ar -t может использоваться для перечисления объектных файлов в архиве, поэтому после этого нужно просто предоставить этот список ar, как обычно при создании архива.

Следующий скрипт обрабатывается это для всех библиотек сразу:

for lib in `find -name '*.a'`; 
    do ar -t $lib | xargs ar rvs $lib.new && mv -v $lib.new $lib; 
done 
Смежные вопросы