Вот есть у меня в проекте файлы 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 \
src/views/mainWindow/MainWindow.h \
src/models/appConfig/AppConfig.h
И при сборке видно, что цель main.o компилится:
14:31:59: Starting: "/usr/bin/make"
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_WEBKIT -DANY_OS=1 -DMEEGO_OS=2 -DANDROID_OS=3 -DTARGET_OS=ANY_OS -DQT_SVG_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -Isrc -Ibuild -o build/main.o src/main.cpp
Но почему тогда конечный бинарник не содержит измененного номера версии?