Превратить тонкий архив в обычный


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

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

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

1   6   2014-08-28 21:25:53

1 ответ:

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

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

for lib in `find -name '*.a'`;
    do ar -t $lib | xargs ar rvs $lib.new && mv -v $lib.new $lib;
done