问题
A standard c++ qmake-based library is developed for Win32, Mac, and Linux. In the qmake project file, the platform-dependent sources are included like this:
win32 {
SOURCES += WinSystem.cpp
HEADERS += WinSystem.h
}
macx {
SOURCES += MacSystem.cpp
HEADERS += MacSystem.h
}
unix {
SOURCES += LinuxSystem.cpp
HEADERS += LinuxSystem.h
}
Now on OS X both unix
and macx
are defined, so the Linux files are also included and cause error! What is the solution to this?
回答1:
You can negate and combine blocks, so in unix but not in mac would be:
unix:!macx {
SOURCES += LinuxSystem.cpp
HEADERS += LinuxSystem.h
}
来源:https://stackoverflow.com/questions/6371363/qmake-platform-scopes