Je voudrais savoir le moyen commun (recommandé) de choisir lequel construire quand je fais une version conditionnelle.En ce qui concerne la construction conditionnelle (Macro) en C/C++/QT
Par exemple, deux fichiers peuvent être sélectionnés.
Condition 1:
class Page : QWebPage {
public:
string test1;
}
Condition 2:
class EnginePage : QWebEnginePage {
public:
string test1;
string test2;
}
La façon la plus commune que j'ai vu est d'utiliser le fichier lié Makefile semblable à ci-dessous:
Fichier lié à Makefile:
Source += \
one.h \
two.h \
three.h \
four.h \
#if (one_defined)
Source += Page.h
#else
Source += EnginePage.h
#end
mais (est ici la Question) Je voudrais savoir si semblable à celui (en utilisant un seul fichier au lieu de deux) est possible et recommandé:
fichier unique (Condition 1 + Condition 2):
#if (one_defined)
class Page : QWebPage
#else
class EnginePage : QWebEnginePage {
#endif
public:
string test1;
#if (one_defined)
string test2;
#endif
}
Pourrait la correspondance entre le nom de classe et l'actua l nom de fichier être ignoré? – Sean83
Oui, vous pouvez ignorer cela en C++. Si vous avez vraiment besoin d'un nom de fichier basé sur votre nom de classe, regardez la fonction [copy] (https://cmake.org/cmake/help/v3.2/command/file.html) de CMake, mais je ne le recommande pas. – Blabdouze