Как создавать статические библиотеки C++, включающие в себя другие библиотеки статически?

Например, я написал обёртку для работы с OpenSSL, и хочу сделать из этого кода статическую библиотеку, но так, чтобы в линкере использующих её проэктов дописывать только -lmycryptowrap, вместо -lcrypto -lssl -lmycryptowrap.

Какие инструменты из наборов MinGW или GNU для этого используются и с какими флагами/аргументами?


Ответы (1 шт):

Автор решения: Arenoros

Библиотеки libcrypto.a и libssl.a по факту являются архивами ar хранящий в себе объектные файлы, для распаковки достаточно выполнить

ar -x libexample.a

После чего достаточно их закинуть туда же где хранятся obj фалы Вашей библиотеки(возможно распакованной таким же образом) и запаковать их обратно с помощью

ar rcs libout.a out1.o out2.o *.o
→ Ссылка