Имеет ли libcxxabi смысл под Linux? Каковы преимущества?
Я пытаюсь определить, имеет ли смысл создание и использование libcxxabi
проекта llvm под Linux.
Моя сборка libcxxabi
связана с
ldd libc++abi.so.1.0
linux-vdso.so.1 => (0x00007fff2e0db000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd658f0d000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fd658d05000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd65893c000)
libc++.so.1 => /path/where/clang/is // edited
/lib64/ld-linux-x86-64.so.2 (0x00007fd6593ab000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd658465000)
и поэтому он использует библиотеку gcc_s
, библиотеку GNU и единственное реальное различие - это то, что она использует libc++
над libstdc++
, но насколько это хорошо?
Учитывая критическую роль библиотеки abi, я должен пойти на libcxxabi
на такой платформе?
Моя проблема не в том, как это сделать, либо если это будет работать, но если это хорошая идея С++ - мудрый, какие выгоды я могу получить или какие выгоды вы получаете, если вы уже используя это.
Ответы
Ответ 1
Вы не должны использовать libcxxabi напрямую. Насколько я понимаю, это своего рода библиотека абстракции платформы, предоставляющая функции низкого уровня, необходимые для реализации libcxx.
Если вы спрашиваете об использовании libcxx или libstdС++, отличия в основном - это лицензия, более новая стандартная полноформатная версия (проект clang кажется немного более быстрым при реализации недавних версий С++) и тот факт, что у вас есть две альтернативные реализации.
Кажется, нет насущной причины для одного из тех, что выше другого. Я бы придерживался того, который лучше поддерживается в вашей системе. Оба проекта нацелены на совместимость с ABI, поэтому их можно использовать либо без поломки.