les preprocesseur en c++ avec QT

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Hello tout le monde! Bon assez discutés. Alors comment ;) ;euh en faite je voudrais savoir comment faire un code avec QT : Pour chaque OS, Du gence ca :

1
2
3
4
#ifdef pour les macs
je met ici le code
#ifdef pour les linuxiens
je met ici le code des linuxiens

Merci d'avance!

Associer a aero15.

+0 -0
Auteur du sujet
1
2
3
4
5
6
7
8
9
ifdef _WIN32
    QString stringOS = "WIN32";
#endif
#ifdef Q_OS_MAC
    QString stringOS = "APPLE";
#endif
#ifdef Q_OS_LINUX
    QString stringOS = "LINUX";
#endif

c'est juste??

Associer a aero15.

+0 -0

Cette réponse a aidé l'auteur du sujet

Probablement pas, c'est moche de faire des globales comme ca… Fait plutot des defines :

1
2
3
4
5
6
7
8
9
#ifdef Q_OS_WIN32
    #define STRING_OS "WIN32"
#endif
#ifdef Q_OS_MAC
    #define STRING_OS "APPLE"
#endif
#ifdef Q_OS_LINUX
    #define STRING_OS "LINUX"
#endif

Édité par Eskimon

ZdS, le best du Zeste ! Tuto Arduino, blog, etc

+1 -0

Cette réponse a aidé l'auteur du sujet

Comme le dit Eskimon, Qt le fera tout seul. Ces define sont aussi utilisées par Qt dans certains headers pour les parties spécifiques à la plateforme. Si tu les définis toi-même, tu risques d'avoir de gros problèmes à la compilation…

Shave the whales! | Thistle

+1 -0

Cette réponse a aidé l'auteur du sujet

Oki mais pourquoi il ne faut pas les definir soi-même?

Ethan Code

tu peux définir toi-même des macros équivalentes, mais c'est pas magique. Si tu définis Q_OS_MAC et que tu compiles ton code sous windows, tu risques d'avoir des problèmes. Si tu veux savoir comment Qt gère ça, regarde ici.

edit: le lien passe pas :/ l'url est https://qt.gitorious.org/qt/qtbase/source/73a1e8c60d894701f34806cc4b847aa2814bf389:src/corelib/global/qsystemdetection.h#L96

Édité par minirop

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte