Как я могу контролировать способ автоматического включения заголовков в gcc / g ++?

В прошлом у меня были проблемы, когда я пытался перенести некоторый код C ++, написанный на Mac OS X, на Система Linux или попытка скомпилировать код, написанный для более старой версии gcc / g ++, с более новой:

Похоже, что некоторые (более старые?) Версии gcc / g ++ будут автоматически включать некоторые файлы заголовков для вас.

Например, код, использующий printf , должен требовать #include . А код, использующий memcpy , должен требовать #include . Но в зависимости от версии gcc, которую я использую, она иногда будет включать их для меня.

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

Кто-нибудь еще сталкивался с этим? Есть ли способ заставить gcc автоматически включать или не включать автоматически? Или есть способ узнать , что он включает автоматически?

8
задан Dave Ceddia 15 October 2010 в 12:17
поделиться