Standardowe biblioteki C i C w systemach Linux, GCC i Clang -
arfai - 24 Feb 2018
Poszukuję jakiejś duszy, która wyjaśni mi coś. Wiem, że GCC jest kolekcją kompilatora GNU. Najczęściej używanymi komponentami są gcc i g ++. LLVM to zbiór technologii kompilatora i narzędzi. Zawiera Clang / Clang ++ jako zamienniki dla gcc i g ++. Glibc jest standardową biblioteką GNU C, która jest standardem w Linuksie. Libstdc ++ to standardowa biblioteka GNU C ++, która jest standardem w Linuksie Libc ++ jest standardową biblioteką C ++ LLVM / Clang Glibc jest podstawowym komponentem dla każdej dystrybucji Linuksa i nie może być po prostu uaktualniony do kaprysu lub łamie całą dystrybucję. Prowadzi mnie to do następujących pytań: - LLVM / Clang nie oferuje biblioteki standardowej C. Czy to oznacza, że w standardowej dystrybucji Linuksa z glibc, Clang domyślnie buduje i łączy oprogramowanie przeciwko glibc? I nie ma w tym żadnej opcji? - Podczas kompilowania najbardziej znanego oprogramowania FOSS z cc = clang, cxx = clang ++ i CXXFLAGS = '- stdlib = libc ++', czy mam prawo powiedzieć, że Clang użyje zarówno glibc, jak i libc ++? (zakładając, że źródło jest w stanie zbudować na podstawie biblioteki libc ++) - Glibc podobno obsługuje zarówno c, jak i c ++. Co sprawia, że glibc jest tak istotny dla dystrybucji Linuksa, podczas gdy libstdc ++ nie jest? A jeśli glibc ma zarówno funkcje C, jak i C ++, dlaczego większość oprogramowania napisanego w języku c ++ buduje i łączy się z libstdc ++, a nie glibc?