Подтвердить что ты не робот

Можно ли определить макрос C в файле makefile?

Можно ли поместить в make файл эквивалент #define VAR (в программе C), чтобы можно было скомпилировать часть какой-либо программы?

4b9b3361

Ответ 1

Соответственно cc manpage на linux

-D name=definition
           The contents of definition are tokenized and processed as if they appeared during translation phase three in a #define directive.  In
           particular, the definition will be truncated by embedded newline characters.

Ответ 2

Отредактируйте Makefile, чтобы показать

CFLAGS = -D VAR1 -D VAR2 = * что-то *

Если вы используете правила по умолчанию в Makefile, это должно работать автоматически. Если вы этого не сделаете, и явным образом вызываю компилятор C, просто убедитесь, что вы пишете что-то по строкам

$(CC) $(CFLAGS) -c -o [email protected]$<

Еще более мило, если факт, что CFLAGS=... выше может быть использован в командной строке, а не написан в Makefile (прочитайте страницу руководства man(1)); это позволяет легко реконфигурировать ваши параметры компиляции в последний момент, но параметры не будут сохранены.

Лучшие практики включают использование CPPFLAGS вместо CFLAGS и использование += вместо =; однако поддержка этих функций не такая универсальная, как выше, и зависит от вашей системы make.

Ответ 3

Да.

Большинство компиляторов поддерживают параметры командной строки для указания # define. Для Visual С++ это /D.