Теперь нам нужно отправить наши библиотеки пользователю, используя более старая версия Raspbian/Debian. Прежде всего он хочет связать свое приложение с libProduct, но он также хочет заменить libHelper. Проблема в том, что он использует гораздо более старую цепочку инструментов - ту, которая входит в состав Raspbian.
Мы пытались связать наши библиотеки с помощью -static-libstc++ и -static-libgcc и надеялись, что это создаст более или менее автономные общие библиотеки, но вот наблюдение:
- содержит много символов из libstdc++ – это ожидаемо
Код: Выделить всё
libHelper
- использует символы libstdc++ из libHelper вместо включения собственных копий символов
Код: Выделить всё
libProduct
- пользователь не может легко заменить libHelper своей собственной сборкой, потому что его набор инструментов может не предоставлять некоторые необходимые символы в его libstdc++.
< ul>
[*]Мы хотим использовать новую цепочку инструментов и libstdc++
[*]Мы не хотим заставлять пользователей обновлять свою цепочку инструментов
< /ul>
Я знаю, что статическое связывание libstdc++ с разделяемыми библиотеками не рекомендуется по разным причинам. И все же хотелось бы хотя бы протестировать. Но, возможно, есть лучшая альтернатива.
Подробнее здесь: https://stackoverflow.com/questions/784 ... -to-libstd