Я читал эту книгу - "Введение в GCC" Брайана Гоффа, где он рассказывает о препроцессоре cpp
GNU C и о том, как он предоставляется в виде отдельного пакета, даже если он интегрирован в компилятор.
Мне было интересно, есть ли подобная команда, которая предоставляется как часть пакета g++
, который может показать мне все расширенные макросы перед компиляцией исходного кода.
Я знаю, что есть опция -E
поддерживаемая как gcc
и g++
которая останавливается после этапа предварительной обработки, но было любопытно, если в g++
есть что-то похожее на cpp
g++
На уровне предварительной обработки между этими двумя языками нет большой разницы. Это просто вопрос о том, как препроцессор разрешает включать (например, __cplusplus
правильные пути включения) и определяя определенные макросы (например, __cplusplus
). Таким образом, та же самая программа, которую вы используете для расширения кода препроцессора на C, должна выполнять работу для C++.
#define X(x) "abc"x
, старый код часто ожидал, что X("def")
расширится до двух строковых литералов, которые будут объединены, как в C, но C ++ больше не работает так.
ld
, что его можно назвать отдельной программой?