Есть ли готовое решение для получения списка членов архива, которые были использованы (или будут использоваться) при связывании в архиве (то есть в статической библиотеке) ?Получение списка членов архива, используемых при связывании статической библиотеки
Скажите, есть ли у меня объектный файл, который предоставляет main
и зависит от a
и b
. Если связать это против статического Lib lib.a
, обеспечивая a
, b
, c
, d
в членах архива a.o
, b.o
, c.o
и d.o
соответственно, то я хотел бы получить список с a.o
и b.o
, либо в качестве побочного продукта связывание библиотеки или запуск command_to_get_members main.o lib.a
Есть ли решения для этого или мне нужно разобрать nm
выходы и разрешить символы против членов архива вручную?
Возможно, вы ищете это [man ldd] (http://man7.org/linux/man-pages/man1/ldd.1.html) или [man strings] (https://linux.die.net)./man/1/strings) – Stargateur
@Stargateur Я думаю, что самое близкое к тому, что я ищу, передает '-M' в компоновщик с' -Wl, -M'. Он печатает карту, которая включает в себя список того, как символы разрешают архивировать элементы. Не идеально, поскольку мне все еще нужно сделать некоторую обработку текста, но я думаю, что я пойду с этим, если не появится лучшее решение. – PSkocik
О, я лучше посмотрю, что вы хотите, действительно, nm может сделать это с помощью --defined-only и -extern-only. Может быть, это может помочь вам http://stackoverflow.com/questions/6687630/how-to-remove-unused-c-c-symbols-with-gcc-and-ld. Я не знаю другого решения. – Stargateur