Включить статическую библиотеку в общий объект? - PullRequest
0 голосов
/ 16 марта 2012

Я бы хотел собрать кучу статических библиотек в общий объект.Пока у меня есть

g++ -Wl -shared -fPIC -o myshared.so objs/*.o

Где вышеупомянутый объект objs / *. O содержит все объектные файлы, извлеченные из различных статических библиотек, используя ar.

UPDATE: в основном, мне интересноВозможно, я смогу использовать файлы .a непосредственно в командной строке, не распаковывая их.

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

Это действительно двухэтапный процесс:

ar -x mylib.a
gcc -shared *.o -o mylib.so
0 голосов
/ 16 марта 2012

Причина, по которой вы не можете использовать gcc -shared -o foo.so foo.a, заключается в том, что архивы обрабатываются по-разному, поскольку объектные файлы из архива используются только для разрешения неопределенных символов, которых нет, поскольку вы не указали предыдущие файлы .o.

...