Question

J'ai la définition suivante dans mon fichier .pro:

RC_FILE = app.rc

Ce fichier contient un RC Include global en haut:

#include "version_info.h"

Le version_info.h tête est sur un répertoire de fichiers d'en-tête commune.

Depuis RC.EXE prend INCLURE variable d'environnement en tenant compte, selon les documents MS, mes jeux de construction par lots de processus jusqu'à que, par conséquent:

SET INCLUDE=%PROJECTDIR%\version;%INCLUDE%
...
QMAKE project.pro -spec win32-msvc2008 -r CONFIG += release

Cela fonctionne parfaitement comme RC semble lire Comportent var de sorte que le fichier « version_info.h » est compris sur chaque fichier RC correctement.

Le problème est quand je produis une solution VS (ou l'importer à travers le VS Addin). L'invocation RC ne contient pas / je drapeau (comme je l'attends), mais ne lit pas INCLUDE variables, même quand j'ai installé à travers le système de dialogue "variables d'environnement dans XP.

Je suis coincé avec ce problème, deux solutions de rechange que je ne pouvais pas se rendre au travail:

  • invocation VS RC.exe honneur la COMPREND variable (ne fonctionne pas non plus en tant que variable utilisateur ou système).
  • Force QMake passer / I drapeau à l'invocation RC, et obtenir que / I drapeau importé dans les paramètres du projet (propriétés compilateur de ressources).

Merci à l'avance.

Était-ce utile?

La solution

Un bug est ouvert dans Qt bugtracker

Tant qu'il résout, vous avez les solutions suivantes: - pirater le fichier de solution générée (voir le rapport de bogue pour plus de détails) - inclure explictely le fichier d'en-tête avec le chemin, sans compter sur INCLUDEPATH (par exemple #include "../../ version.h")

Autres conseils

Il est un peu hacky mais fonctionne très bien: utiliser la variable qmake QMAKE_RC dans votre fichier .pro (ou via des arguments pour qmake). Par défaut, il est défini comme rc mais vous pouvez le définir comme rc /i<directory> <any-other-rc-flags> ». Il serait mieux si QMake soutient quelque chose comme QMAKE_RC_FLAGS mais il ne fonctionne pas.

Je ne sais pas si vous avez remarqué, mais le bug bugtracker @Bruce mentionné a été fermé à partir de 5.0.0 RC2: https://codereview.qt-project.org/#change,41984

La variable, vous devez utiliser est RC_INCLUDEPATH.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top