Название: Почему не перекомпилируются изменения, внесенные в *.h - файл? Отправлено: xintrea от Июнь 20, 2015, 13:51 Вот есть у меня в проекте файлы main.cpp и main.h. В main.cpp прописан инклюд файла main.h.
В файле main.h есть определение: #define RELEASE_VERSION 72 Я меняю значение этого определения на 73, и запускаю сборку. В результате генерируется бинарник, в котором в разделе "Версия программы" видна версия 72 а не 73. А чтобы версия в бинарнике поменялась, надо запустить полную пересборку проекта! Я залез в Makefile, который генерирует qmake. Там для цели main.o есть зависимость src/main.h: Код: build/main.o: src/main.cpp src/main.h \ И при сборке видно, что цель main.o компилится: Код: 14:31:59: Starting: "/usr/bin/make" Но почему тогда конечный бинарник не содержит измененного номера версии? Название: Re: Почему не перекомпилируются изменения, внесенные в *.h - файл? Отправлено: Akon от Июнь 20, 2015, 14:29 Потому что main.h не присутствует в HEADERS.
Название: Re: Почему не перекомпилируются изменения, внесенные в *.h - файл? Отправлено: xintrea от Июнь 20, 2015, 14:43 Потому что main.h не присутствует в HEADERS. В *.pro файле присутсвует: Код: HEADERS = src/main.h \ Название: Re: Почему не перекомпилируются изменения, внесенные в *.h - файл? Отправлено: Igors от Июнь 20, 2015, 14:51 В файле main.h есть определение: Для начала после этого дефайна поставить строку типа#define RELEASE_VERSION 72 Я меняю значение этого определения на 73, и запускаю сборку. В результате генерируется бинарник, в котором в разделе "Версия программы" видна версия 72 а не 73. А чтобы версия в бинарнике поменялась, надо запустить полную пересборку проекта! Код И посмотреть какие исходники ее схватили Название: Re: Почему не перекомпилируются изменения, внесенные в *.h - файл? Отправлено: Alex Custov от Июнь 20, 2015, 16:11 В результате генерируется бинарник, в котором в разделе "Версия программы" видна версия 72 а не 73. А чтобы версия в бинарнике поменялась, надо запустить полную пересборку проекта! Версия имеется ввиду в win32 ресурсах? А как генерируется ресурсный файл (rc) с версией? Название: Re: Почему не перекомпилируются изменения, внесенные в *.h - файл? Отправлено: xintrea от Июнь 20, 2015, 17:35 В результате генерируется бинарник, в котором в разделе "Версия программы" видна версия 72 а не 73. А чтобы версия в бинарнике поменялась, надо запустить полную пересборку проекта! Версия имеется ввиду в win32 ресурсах? А как генерируется ресурсный файл (rc) с версией? Да нет, просто при выводе на экран берется из дефайна. Название: Re: Почему не перекомпилируются изменения, внесенные в *.h - файл? Отправлено: Akon от Июнь 20, 2015, 18:03 У вас просто одно приложение или библиотека (где дефайн) и приложение, где выводится версия?
Название: Re: Почему не перекомпилируются изменения, внесенные в *.h - файл? Отправлено: Alex Custov от Июнь 20, 2015, 18:17 вангую что DEPENDPATH не прописан
|