Я разрабатываю исполняемые файлы интерфейса командной строки как для 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, но ввод-вывод обычно полностью выполняется в библиотеках C ++ и C, а не на низкоуровневых материалах).
Основные дистрибутивы Linux не предоставляют LLVM libc ++, потому что:
Если со временем libc ++ станет частью дистрибутивов, она станет необязательным компонентом. связывание с ним, вероятно, потребует дополнительных опций.
Как сказал Джонатан, вы должны использовать любой инструмент, включенный по умолчанию. Clang безопасен для использования в Linux, так как он настроен как замена GCC, поэтому в этом аспекте вам не нужно беспокоиться о двух компиляторах. Кроме того, поскольку вы ориентируетесь на две платформы, вам следует взглянуть на cmake.