2011-06-16 11 views
15

Una biblioteca estándar basada en qmake de C++ está desarrollada para Win32, Mac y Linux. En el archivo de proyecto qmake, las fuentes dependientes de la plataforma se incluyen como esto:ámbitos de la plataforma qmake

win32 { 
    SOURCES += WinSystem.cpp 
    HEADERS += WinSystem.h 
} 

macx { 
    SOURCES += MacSystem.cpp 
    HEADERS += MacSystem.h 
} 

unix { 
    SOURCES += LinuxSystem.cpp 
    HEADERS += LinuxSystem.h 
} 

Ahora en OS X tanto unix y macx se definen, por lo que los archivos de Linux también se incluyen y error causa! ¿Cuál es la solución a esto?

Respuesta

17

Puede negar y combinar bloques, por lo que en Unix, pero no en Mac sería:

unix:!macx { 
    SOURCES += LinuxSystem.cpp 
    HEADERS += LinuxSystem.h 
} 
+0

hay dos puntos después de ella o no? unix:! macx: {...} – Alston

Cuestiones relacionadas