Этот вопрос касается того, что после более чем года с C++ я не могу решить или найти решение об этом.Об обновлении заголовочных файлов C++
Я привык использовать отдельные файлы для заголовков и кода на C, но у меня есть проблема с ним на C++: всякий раз, когда я редактирую заголовочный файл и пытаюсь скомпилировать код, который его использует снова, компилятор не выполняет обратите внимание на изменение заголовка.
Что я делаю, чтобы решить это, «компилировать» заголовок (.hpp) в одиночку. Иногда я просто добавляю его в список исходных файлов для g ++ вместе с остальной частью кода, но потом происходит то, что я должен выполнить команду дважды (первый раз это дает мне ошибки, но не второй раз). Он также предупреждает меня, что я использую параметр «pragma once» в основном файле.
Я знаю, что это очень неправильно, поэтому я искал правильный способ сделать это без успеха. Я заметил, что g ++ генерирует файлы «.gch», но я действительно не знаю, какова их цель, хотя они могут быть связаны.
Я подозреваю, что проблема вызвана кодом в «.hpp». Я знаю (я думаю), что хороший способ сделать это - определить прототипы только внутри заголовка и написать тело методов в отдельном файле, но иногда (особенно при использовании шаблонов) это создает еще больше проблем.
Вы действительно строить свою программу во всех поступках неправильности. Однако мы ничего не можем сказать о вашей проблеме без шагов воспроизведения. Компилятор не может «не заметить» изменения, потому что исходный файл, а также все, что '' include '' _allways_ полностью компилируется, когда вы, um, скомпилируете его. Скорее всего, вы не настроили свою систему сборки должным образом для разрешения зависимостей заголовков source →. Если вы используете GNU Make, [эта документация] (https://www.gnu.org/software/make/manual/html_node/Automatic-Prerequisites.html) поможет вам; Тем временем мы не можем помочь. –
@LightnessRacesinOrbit Я не могу понять, как сделать PM другим пользователям, поэтому я делаю плохое дело и размещаю сообщение для вас здесь. Я просто хотел, чтобы вы знали, что цитата Алисии Сильверстоун в вашем профиле сделала мою неделю. Спасибо, сэр. – RyanP
@ RyanP: lol np; p –