Что такое набор инструментов GCC?

Каким образом это может быть примером компилятора C/assembly/object/executable?

Я хотел бы больше информации, чем те немногие, что дает Википедия об этом. Кроме того, если вы можете связать некоторые источники, где я мог бы найти больше об этом, было бы здорово.


person Adriana Longo    schedule 12.05.2018    source источник


Ответы (1)


Цепочка инструментов из Викисловаря:

Набор инструментов для разработки программного обеспечения, часто используемых последовательно, так что выходные данные одного инструмента содержат входные данные следующего.

GCC — это коллекция компиляторов GNU; то есть набор компиляторов для разных языков от GNU. С официальной веб-страницы:

Коллекция компиляторов GNU включает интерфейсы для C, C++, Objective-C, Fortran, Ada и Go, а также библиотеки для этих языков (libstdc++,...).

Таким образом, набор инструментов GCC представляет собой набор приложений и библиотек для компиляции программ, написанных на нескольких языках. Например, для языков C и C++ это включает такие инструменты, как:

  • cpp Препроцессор
  • gcc Компилятор C
  • g++ Компилятор C++
  • gcov Программа тестового покрытия

И сопутствующие библиотеки, такие как:

  • libbacktrace Создатель символических трассировок
  • libquadmath Математическая библиотека Quad Precision
  • libstdc++-v3 Стандартная библиотека C++

Теперь, когда кто-то ссылается на цепочку инструментов GCC, обычно он также неявно ссылается на другие утилиты, которые могут не поступать из проекта/репозитория GCC, но обычно требуются для разработки. Например, такие инструменты, как:

  • ar Программа для работы с архивами
  • as Ассемблер
  • c++filt Деманглер C++
  • ld Линкер
  • nm Список символов объектного файла
  • objdump Дампер информации об объектном файле

Если вы используете реализацию этих инструментов от GNU, то вы используете проект GNU Binutils. :

GNU Binutils — это набор бинарных инструментов.

person Acorn    schedule 12.05.2018
comment
Правильно ли добавить еще и отладчик в набор инструментов? поэтому в этом случае gdb после objdump - person ; 27.03.2020
comment
@Mondo-Cane В расширенном определении (которое используется на практике), конечно! На самом деле многие компиляторы поставляются с отладчиком. - person Acorn; 27.03.2020