qmake平台范围

yol*_*olo 16 operating-system qmake

为Win32,Mac和Linux开发了基于标准c ++ qmake的库.在qmake项目文件中,依赖于平台的源包括如下:

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

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

unix {
     SOURCES += LinuxSystem.cpp
     HEADERS += LinuxSystem.h
}
Run Code Online (Sandbox Code Playgroud)

现在,在OS X上都unixmacx定义,因此也包括在Linux文件和原因的错误!这是什么解决方案?

Tat*_*ela 18

你可以否定和组合块,所以在unix但不在mac中将是:

unix:!macx {
  SOURCES += LinuxSystem.cpp
  HEADERS += LinuxSystem.h
}
Run Code Online (Sandbox Code Playgroud)