В прошлом у меня были проблемы, когда я пытался перенести некоторый код C ++, написанный на Mac OS X, на Система Linux или попытка скомпилировать код, написанный для более старой версии gcc / g ++, с более новой:
Похоже, что некоторые (более старые?) Версии gcc / g ++ будут автоматически включать некоторые файлы заголовков для вас.
Например, код, использующий printf
, должен требовать #include
. А код, использующий memcpy
, должен требовать #include
. Но в зависимости от версии gcc, которую я использую, она иногда будет включать их для меня.
Когда я забываю что-то включить, а затем никогда не получаю ошибок , это наносит серьезный ущерб, пока я не скомпилирую код в другой системе. На этом этапе это игра, в которой нужно запускать весь проект и исправлять включенные компоненты.
Кто-нибудь еще сталкивался с этим? Есть ли способ заставить gcc автоматически включать или не включать автоматически? Или есть способ узнать , что он включает автоматически?