2013-05-27 4 views
6

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

Я знаю, что реализация Dinkumware используется средствами msvc и icc, libstdC++ используется gcc, а libC++ используется в clang. Но как насчет Digital Mars C++ или ОС Oracle Embarcadero или IBM xlC++?

+1

Обратите внимание, что clang также может использовать 'libstdC++'. – Morwenn

+0

В настоящее время icc использует gcc std библиотеки, я думаю. Во всяком случае, мне любопытно, зачем вам нужна эта информация? – user93353

+0

@ user93353: В моем конкретном случае ничего важного на самом деле. Просто обсуждение среди коллег, которые привели к этому вопросу. И мне стало любопытно, поскольку я не мог просто найти список этой информации. –

ответ

4

короткий список:

  • GCC: использует свой собственный libstdC++.
  • MSVC: использует свой собственный msvcrp, который приобретается у Dinkumware, затем расчленен для работы с плохой поддержкой языка C++ на MSVC (так что это уже не Dinkumware).
  • Clang: использует LLVM libC++, если передан параметр -stdlib=libc++. Он также может использовать libstdC++ GCC и теоретически (но не на практике) также библиотеку MSVC (я говорю теоретически, потому что Clang в настоящее время может анализировать только заголовки C++, но не связывать сгенерированный код с библиотекой).
  • ICC: использует GCC libstdC++ в Linux и библиотеку MSVC в Windows. Он также пытается имитировать оба компилятора на этих платформах.

Обратите внимание, что существуют другие компиляторы и (независимые) реализации стандартной библиотеки C++, которые я здесь не рассматривал.

Смежные вопросы