平台区分
win32 {
}
macx {
}
unix {
}
根据平台位数加载
win32 {
contains(DEFINES, WIN64) { DESTDIR = $${PWD}/../../bin64
} else { DESTDIR = $${PWD}/../../bin32 }
}
编译器位数区分
contains(QT_ARCH, i386) {
message("32-bit")
DESTDIR = $${PWD}/bin32
} else {
message("64-bit")
DESTDIR = $${PWD}/bin64
}
判断debug和release
CONFIG(debug,debug|release){
message("debug")
}
CONFIG(release,debug|release){
message("release")
}
判断编译器类型、编译器版本、操作系统
//GCC编译器
#ifdef __GNUC__
#if __GNUC__ >= 3 // GCC3.0以上
//MSVC编译器
#ifdef _MSC_VER
#if _MSC_VER >=1000 // VC++4.0以上
#if _MSC_VER >=1100 // VC++5.0以上
#if _MSC_VER >=1200 // VC++6.0以上
#if _MSC_VER >=1300 // VC2003以上
#if _MSC_VER >=1400 // VC2005以上
#if _MSC_VER >=1500 // VC2008以上
#if _MSC_VER >=1600 // VC2010以上
#if _MSC_VER >=1700 // VC2012以上
#if _MSC_VER >=1800 // VC2013以上
#if _MSC_VER >=1900 // VC2015以上
//Borland C++
#ifdef __BORLANDC__
//Cygwin
#ifdef __CYGWIN__
#ifdef __CYGWIN32__
//mingw
#ifdef __MINGW32__
//windows
#ifdef _WIN32 //32bit
#ifdef _WIN64 //64bit
#ifdef _WINDOWS //图形界面程序
#ifdef _CONSOLE //控制台程序
//Windows(95/98/Me/NT/2000/XP/Vista)和Windows CE都定义了
#if (WINVER >= 0x030a) // Windows 3.1以上
#if (WINVER >= 0x0400) // Windows 95/NT4.0以上
#if (WINVER >= 0x0410) // Windows 98以上
#if (WINVER >= 0x0500) // Windows Me/2000以上
#if (WINVER >= 0x0501) // Windows XP以上
#if (WINVER >= 0x0600) // Windows Vista以上
//_WIN32_WINNT 内核版本
#if (_WIN32_WINNT >= 0x0500) // Windows 2000以上
#if (_WIN32_WINNT >= 0x0501) // Windows XP以上
#if (_WIN32_WINNT >= 0x0600) // Windows Vista以上
判断Qt版本及构建套件位数
#打印版本信息
message(qt version: $$QT_VERSION)
greaterThan(QT_MAJOR_VERSION, 4) {
message(当前为Qt5及以上版本)
} else {
message(当前为Qt4及以下版本)
}
QT_VERSION = $$[QT_VERSION]
QT_VERSION = $$split(QT_VERSION, ".")
QT_VER_MAJ = $$member(QT_VERSION, 0)
QT_VER_MIN = $$member(QT_VERSION, 1)
greaterThan(QT_VER_MAJ, 4) {
greaterThan(QT_VER_MIN, 9) {
message(Qt版本大于5.9)
} else {
message(Qt版本为5.0 - 5.9)
}
} else {
lessThan(QT_VER_MIN, 9) {
message(Qt版本小于4.9)
} else {
message(Qt版本为4.9 - 5.0(不包含5.0))
}
}
equals(QT_VER_MAJ ,5) | equals(QT_VER_MIN ,9) {
message(Qt版本为5.9)
}
#QT_ARCH是Qt5新增的,在Qt4上没效果
#打印当前Qt构建套件的信息
message($$QT_ARCH)
#表示arm平台构建套件
contains(QT_ARCH, arm) {}
#表示32位的构建套件
contains(QT_ARCH, i386) {}
#表示64位的构建套件
contains(QT_ARCH, x86_64) {}
编译文件生成目录
UI_DIR = temp/Gui #UI中间文件生成目录
MOC_DIR = temp/Moc #moc中间文件生成目录
RCC_DIR = temp/rcc #资源文件中间文件生成目录
OBJECTS_DIR = temp/Obj #指定目标文件(obj)的存放目录
DESTDIR = $${PWD}/bin32 #指定生成的应用程序放置的目录
pro包含使用pri封装的模块
include(module/MyButton/MyButton.pri)
网友评论