Должен ли я использовать libС++ или libstdС++?

Я разрабатываю исполняемые файлы интерфейса командной строки для osx и linux с помощью c/С++. Проект будет связан с opencv. Должен ли я использовать libС++ или libstdС++?

Ответ 1

Я бы использовал собственную библиотеку для каждой ОС i.e. libstdС++ в GNU/Linux и libС++ в Mac OS X.

libС++ не заполнен на GNU/Linux на 100%, и нет реального преимущества для его использования, когда libstdС++ более совершенен. Кроме того, если вы хотите ссылаться на любые другие библиотеки, написанные на С++, они почти наверняка были бы построены с помощью libstdС++, поэтому вам нужно будет связать их с ними, чтобы использовать их.

Ответ 2

Основные дистрибутивы Linux не предоставляют LLVM libС++, потому что:

  • В отличие от Apple и FreeBSD, GPL + 3 не является проблемой, поэтому нет необходимости реализуем еще один стек.
  • Linux-компоненты уже давно разрабатывались в GNU libstd ++. Некоторые из них не строите ничего.
  • В то время как libС++ силен в новых функциях, он имеет некоторые проблемы с устаревшим кодом.

Если в итоге libС++ стал частью дистрибутивов, он будет в качестве необязательного компонента. связывание с ним, вероятно, потребует дополнительных опций.

Как сказал Джонатан, вы должны использовать любой инструмент, который включен по умолчанию. Clang безопасен для Linux, поскольку он настроен как замена GCC, поэтому в этом аспекте вам не нужно беспокоиться о 2 компиляторах. Кроме того, поскольку вы ориентируетесь на две платформы, вы должны взглянуть на cmake.

Ответ 3

сказано, что libС++ имеет более человечно читаемые сообщения об ошибках в шаблонах.