C++11 и статическая библиотека, связанная с libstdC++
У меня есть библиотека, которая является статической библиотекой для C и C++. Проблема в том, что библиотека связана с libstdc++
,
В Xcode, когда я переключаюсь на libc++
(чтобы использовать возможности C++ 11 и использовать упомянутую библиотеку C++) он генерирует много ошибок компиляции.
Авторы библиотеки говорят, что библиотека не готова к C++ 11.
Есть ли еще способ использовать оба?
1 ответ
Ваша сторонняя статическая библиотека должна быть связана с той же версией библиотеки C++, с которой она была скомпилирована. Это включает в себя не только тип библиотеки (libstdC++), но и номера основных / вспомогательных версий для обеспечения совместимости ABI. Любая другая версия библиотеки может привести к разрывам сборки в лучшем случае или странным сбоям в худшем случае. Узнайте больше о версии ABI в руководстве GCC.
Если интерфейс для сторонней библиотеки имеет только POD-типы, вы можете сделать общую библиотеку из вашей статической библиотеки, а затем использовать ее из своего приложения, связанного с libC++.