C препроцессор против C компилятора - PullRequest
3 голосов
/ 03 мая 2010

Если я скажу препроцессору C #include файл и использую CPPFLAGS, чтобы помочь найти нужный файл, тогда файл уже включен, верно? Что, если он вообще используется, говорит компилятору C о том же каталоге include с CFLAGS?

1 Ответ

2 голосов
/ 03 мая 2010

Не думаю, что есть какая-то польза.

Неявные правила make указывают, что CFLAGS используется только при компиляции программ на C (от .c до .o). Значение CPPFLAGS также добавляется в командную строку компилятора.

CPPFLAGS также используется в следующих правилах:

  • Компиляция программ на C ++
  • Компиляция программ на Фортране и Ratfor
  • Предварительная обработка программ на Фортране и Ratfor
  • Сборка и предварительная обработка ассемблерных программ
  • Создание библиотек Lint из программ на C, Yacc или Lex

Поскольку CPPFLAGS используется в каждом случае, когда используется CFLAGS, похоже, нет смысла добавлять директивы -I к CFLAGS, которые уже находятся в CPPFLAGS.

Конечно, если ваш Makefile имеет пользовательские правила, которые передают компилятору CFLAGS, но пропускают CPPFLAGS, это другая история.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...