Здание G CC: есть ли способ построить только cpp? - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь собрать G CC, но мне действительно нужен только c препроцессор.

Есть ли способ построить c препроцессор сам по себе?

1 Ответ

0 голосов
/ 19 февраля 2020

Похоже, что CPP не является отдельной программой, все, что она делает, это execv cc1, записанный с помощью следующей команды strace

execve("/usr/lib/gcc/x86_64-linux-gnu/9/cc1", ["/usr/lib/gcc/x86_64-linux-gnu/9/"..., "-E", "-quiet", "-imultiarch", "x86_64-linux-gnu", "-", "-mtune=generic", "-march=x86-64", "-fasynchronous-unwind-tables", "-fstack-protector-strong", "-Wformat", "-Wformat-security", "-fstack-clash-protection", "-fcf-protection"]

# Which results into the following command line
/usr/lib/gcc/x86_64-linux-gnu/9/cc1 -E -quiet -imultiarch x86_64-linux-gnu --mtune=generic -march=x86-64 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection

Это подтверждается с помощью следующей ссылки:

https://en.wikibooks.org/wiki/GNU_C_Compiler_Internals/GNU_C_Compiler_Architecture

Программа cc1 включает в себя как препроцессор, так и компилятор C. Он компилирует исходный файл C и создает файл сборки (.S).

...