Статическое связывание проекта с несколькими библиотеками с libstdС++?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Статическое связывание проекта с несколькими библиотеками с libstdС++?

Сообщение Anonymous »

Мы создаем проект, состоящий из двух общих библиотек libProduct и libHelper. libProduct зависит от libHelper. Мы используем довольно новую цепочку инструментов GCC (12) для сборки Linux, чтобы использовать возможности C++20 в нашей кодовой базе.
Теперь нам нужно отправить наши библиотеки пользователю, используя более старая версия Raspbian/Debian. Прежде всего он хочет связать свое приложение с libProduct, но он также хочет заменить libHelper. Проблема в том, что он использует гораздо более старую цепочку инструментов - ту, которая входит в состав Raspbian.
Мы пытались связать наши библиотеки с помощью -static-libstc++ и -static-libgcc и надеялись, что это создаст более или менее автономные общие библиотеки, но вот наблюдение:
  • Код: Выделить всё

    libHelper
    содержит много символов из libstdc++ – это ожидаемо
  • Код: Выделить всё

    libProduct
    использует символы libstdc++ из libHelper вместо включения собственных копий символов
  • пользователь не может легко заменить libHelper своей собственной сборкой, потому что его набор инструментов может не предоставлять некоторые необходимые символы в его libstdc++.
Как мы можем решить эту проблему и достичь наших целей:
< ul>
[*]Мы хотим использовать новую цепочку инструментов и libstdc++
[*]Мы не хотим заставлять пользователей обновлять свою цепочку инструментов
< /ul>
Я знаю, что статическое связывание libstdc++ с разделяемыми библиотеками не рекомендуется по разным причинам. И все же хотелось бы хотя бы протестировать. Но, возможно, есть лучшая альтернатива.

Подробнее здесь: https://stackoverflow.com/questions/784 ... -to-libstd
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Статическое свойство или статическое поле Readonly
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Clang++ не может связываться с libstdС++
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Статическое связывание libsodium
    Anonymous » » в форуме C++
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Статическое связывание libsodium
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Статическое связывание OpenSSL с Cmake всегда ссылается на libssl.so.1.1 вместо libssl.a.
    Anonymous » » в форуме C++
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»