Я розробляю виконувані файли інтерфейсу командного рядка для osx та linux, використовуючи c / c ++. Проект створить посилання на opencv. Чи слід використовувати libc ++ або libstdc ++?
Я розробляю виконувані файли інтерфейсу командного рядка для osx та linux, використовуючи c / c ++. Проект створить посилання на opencv. Чи слід використовувати libc ++ або libstdc ++?
Відповіді:
Я б використовував власну бібліотеку для кожної ОС, тобто libstdc ++ на GNU / Linux та libc ++ на Mac OS X.
libc ++ не є на 100% повноцінним на GNU / Linux, і немає реальної переваги у використанні, коли libstdc ++ є більш повним. Крім того, якщо ви хочете зробити посилання на будь-які інші бібліотеки, написані на C ++, вони майже напевно будуть побудовані за допомогою libstdc ++, тому вам доведеться зв’язуватись із цим, щоб їх використовувати.
Детальніше тут про повноту libc ++ на різних платформах.
std::ctype_base::mask
значень у <ctype.h>
константи повністю залежить від платформи. (Внутрішні характеристики процесора забезпечуються компілятором, обробка винятків здійснюється низькорівневим рівнем ABI, але IO зазвичай виконується повністю в бібліотеках C ++ та C, а не на низькорівневих матеріалах).
Основні дистрибутиви Linux не надають LLVM libc ++, оскільки:
Якщо з часом libc ++ став частиною дистрибутивів, це буде додатковим компонентом. посилання проти нього, ймовірно, потребуватиме додаткових опцій.
Як сказав Джонатан, ви повинні використовувати будь-який інструмент, включений за замовчуванням. Clang безпечний у використанні в Linux, оскільки налаштований як заміна GCC, тому в цьому аспекті вам не доведеться турбуватися про 2 компілятора. Крім того, оскільки ви націлюєтеся на дві платформи, вам слід поглянути на cmake.