Значение -DHAVE_CONFIG_H в make-файлах - PullRequest
12 голосов
/ 13 марта 2010

Я начинаю изучать make-файлы. Глядя на вывод, я вижу много случаев:

g++ -DHAVE_CONFIG_H -I ...

что такое -DHAVE_CONFIG_H точно? Какова функция этой опции компиляции?

1 Ответ

20 голосов
/ 13 марта 2010

Все, что -DHAVE_CONFIG_H делает, это определяет токен препроцессора HAVE_CONFIG_H точно так, как если бы вы имели #define HAVE_CONFIG_H в самом начале каждого из ваших исходных файлов.

Что касается того, для чего он используется, это полностью зависит от остальной части вашего исходного файла (и всего, что оно включает в себя). Вот где вы должны искать, чтобы выработать его эффект.

Это выглядит как , это может означать, что файл заголовка config.h доступен и должен быть включен; в этом случае вы, вероятно, найдете следующую последовательность где-то в ваших исходных файлах:

#ifdef HAVE_CONFIG_H
    #include "config.h"
#endif

, который будет включать заголовочный файл, когда вы говорите, что он доступен. Однако это предположение с моей стороны и ни в коем случае не является точным эффектом, для чего I будет использовать такой символ препроцессора.

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