Как создавать статические библиотеки 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