В моем файле .pro содержится следующее определение:
RC_FILE = app.rc
Этот RC-файл содержит глобальное включение вверху:
#include "version_info.h"
Заголовок version_info.h находится в каталоге общих файлов заголовков.
Поскольку RC.EXE учитывает переменную среды INCLUDE, в соответствии с документацией MS, мой пакет процесса сборки настраивает ее следующим образом:
SET INCLUDE=%PROJECTDIR%\version;%INCLUDE%
...
QMAKE project.pro -spec win32-msvc2008 -r CONFIG += release
Это прекрасно работает, так как RC, кажется, читает этот INCLUDE var, поэтому файл "version_info.h" правильно включается в каждый файл RC.
Проблема заключается в том, что я генерирую решение VS (или импортирую его через VS Addin). Вызов RC не содержит никакого флага / I (как я и ожидал), но не считывает никакую переменную INCLUDE, даже если я установил ее в диалоговом окне системных переменных среды в XP.
Так что я застрял с этой проблемой, с двумя альтернативами, которые я не мог заставить работать:
- Сделайте так, чтобы вызов VS RC.exe учитывал переменную INCLUDE (не работала ни как пользовательская, ни как системная переменная).
- Принудительно заставляет QMAKE передавать флаг / I в вызов RC и импортировать этот флаг / I в настройки проекта (свойства компилятора ресурсов).
Заранее спасибо.