qmake的常用变量主要解说查看帮助手册Qt 5.12->qmake Manual->Variables 参考:qmake 与 配置文件_丘上人的博客-CSDN博客 E:\workspace\QtWork\qmake\library\qmakeevaluator.cpp:QMakeEvaluator::loadSpec() .qmake.super,.qmake.conf,.qmake.cache初始化 QMAKESPEC ,qmake采用的架构,根据配置qtcreator时所设置的编译器版本进行识别的 XQMAKESPEC ,目标架构 QMAKEPATH ,qmake 的绝对路径 QMAKEFEATURES ,qmake fetures的绝对路径,QtInstallDir\Qt5.12.0\5.12.0\msvc2015_64\mkspecs\features _QMAKE_SUPER_CACHE_ , .qmake.super的绝对路径 _QMAKE_CONF_ , .qmake.conf的绝对路径 _QMAKE_CACHE_ ,.qmake.cache的绝对路径 _QMAKE_STASH_ , .qmake.stash的绝对路径E:\workspace\QtWork\qmake\library\qmakeevaluator.cpp:QMakeEvaluator::loadDefaults() 下面是qmake内置的变量,存放在evaluator的m_option中, DIR_SEPARATOR default value in windows \\ default value in linux / DIRLIST_SEPARATOR default value in windows ; default value in linux : _DATE_ 初始化值QDateTime::currentDateTime().toString() QMAKE_QMAKE 初始化值qmake.exe绝对路径 QMAKE_ARGS 初始化值qmake 传入参数(工程构建步骤中qmake之后的参数) QMAKE_QTCONF 通过-qtconf参数指定的文件 下面是解析之前通过C++代码初始化的变量 QMAKE_HOST.cpu_count,qmake运行主机的cpu数量 QMAKE_HOST.os ,qmake运行主机的操作系统名字,可选值有windows,linux QMAKE_HOST.name ,qmake运行主机名字 QMAKE_HOST.version ,qmake运行主机的操作系统内核版本 QMAKE_HOST.version_string ,qmake运行主机的操作系统产品版本 QMAKE_HOST.arch ,qmake运行主机的架构,可选值有x86_64,x86,IA64,Unknown QMAKE_TARGET.arch ,目标架构(5.12.0只对windows有效)x86,x86_64(对于windows下配置vs编译器的qt,qmake会根据path中vs的bin下的架构名字进行解析)E:\workspace\QtWork\qmake\library\qmakeevaluator.cpp:QMakeEvaluator::evaluateFile() QMAKE_INTERNAL_INCLUDED_FILES 解析pro文件时背后所用到的配置文件列表,包括conf文件、prf文件、pri文件、prl文件等等脚本文件E:\workspace\QtWork\qmake\library\qmakeevaluator.cpp:QMakeEvaluator::evaluateFeatureFile() QMAKE_INTERNAL_INCLUDED_FEATURES ,解析pro文件时,背后所用到的features文件(.prf文件)E:\workspace\QtWork\qmake\library\qmakeevaluator.cpp:QMakeEvaluator::visitProFile() PWD :当前路径E:\workspace\QtWork\qmake\library\qmakeglobals.cpp:void QMakeGlobals::commitCommandLineArguments(),初始化参数的时候会用到 QMAKE_EXTRA_ARGS E:\workspace\QtWork\qmake\library\qmakeevaluator.cpp:QMakeEvaluator::setupProject() TARGET testEmpty _PRO_FILE_ E:/workspace/QtWork/testEmpty/testEmpty.pro _PRO_FILE_PWD_ E:/workspace/QtWork/testEmpty OUT_PWD E:/workspace/QtWork/build-testEmpty-Desktop_Qt_5_12_0_MSVC2015_64bitCONFIG = file_copies qmake_use qt warn_on release link_prl QT = core guiBuildsMetaMakefileGenerator::processBuild(const ProString &build) BUILD_PASS =[debug|release] BUILD_NAME =[debug|release]MetaMakefileGenerator::createMakefileGenerator(QMakeProject *proj, bool noIO) MAKEFILE_GENERATOR =[UNIX|MINGW|PROJECTBUILDER|XCODE|MSVC.NET|MSBUILD]Win32MakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags) QMAKE_LIB_EXTENSIONS QMAKE_EXTENSION_STATICLIB LIBS LIBS_PRIVATE QMAKE_LIBS QMAKE_LIBS_PRIVATE QMAKE_CURRENT_PRL_LIBS "QMAKE_" + lib.toUpper() + "_VERSION_OVERRIDE"MakefileGenerator::processPrlFileCore(QString &origFile, const QStringRef &origName,const QString &fixedFile) QMAKE_CURRENT_PRL_LIBS QMAKE_PRL_LIBS PRL_EXPORT_DEFINES QMAKE_PRL_DEFINESprls QMAKE_PRO_INPUT QMAKE_PRL_TARGET QMAKE_PRL_CONFIG QMAKE_PRL_VERSIONWin32MakefileGenerator::processVars() PRL_TARGET QMAKE_ORIG_TARGET QMAKE_PROJECT_NAME MAKEFILE QMAKE_INCDIR QMAKE_LIBDIR QMAKE_INCDIR_POST QMAKE_LIBDIR_POST VERSION VER_MAJ VER_MIN TARGET_VERSION_EXT
#D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/spec_pre.prf:
QMAKE_DIR_SEP = $$DIR_SEPARATOR
QMAKE_DIRLIST_SEP = $$DIRLIST_SEPARATOR
QMAKE_EXT_C = .c
QMAKE_EXT_CPP = .cpp .cc .cxx
QMAKE_EXT_OBJC = .m
QMAKE_EXT_OBJCXX = .mm
QMAKE_EXT_CPP_MOC = .moc
QMAKE_EXT_H = .h .hpp .hh .hxx
QMAKE_EXT_H_MOC = .cpp
QMAKE_EXT_JS = .js
QMAKE_EXT_LEX = .l
QMAKE_EXT_LIBTOOL = .la
QMAKE_EXT_PKGCONFIG = .pc
QMAKE_EXT_PRL = .prl
QMAKE_EXT_UI = .ui
QMAKE_EXT_YACC = .y
QMAKE_CPP_MOD_MOC =
QMAKE_H_MOD_MOC = moc_
QMAKE_MOD_LEX = _lex
QMAKE_MOD_YACC = _yacc
QMAKE_PATH_ENV = $$(PATH)
QMAKE_EXT_OBJ
QMAKE_EXT_RES
QMAKE_SH
equals(QMAKE_HOST.os, Windows) {QMAKE_EXT_OBJ = .objQMAKE_EXT_RES = .resQMAKE_SH =ensurePathEnv()for(dir, QMAKE_PATH_ENV) {exists($$dir/sh.exe) {QMAKE_SH = $$dir/sh.exebreak()}}
} else {QMAKE_EXT_CPP += .CQMAKE_EXT_H += .HQMAKE_EXT_OBJ = .oQMAKE_SH = sh
}
D:\Qt\Qt5.12.0\5.12.0\msvc2015_64\mkspecs\win32-msvc\qmake.conf
include(../common/msvc-desktop.conf)
QMAKE_CFLAGS +=
QMAKE_CXXFLAGS +=
load(qt_config)
#D:\Qt\Qt5.12.0\5.12.0\msvc2015_64\mkspecs\common\msvc-desktop.conf
MAKEFILE_GENERATOR = MSVC.NET
QMAKE_PLATFORM = win32
QMAKE_COMPILER = msvc
CONFIG += flat debug_and_release debug_and_release_target precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe
# MSVC 2017 15.8+ fixed std::aligned_storage but compilation fails without
# _ENABLE_EXTENDED_ALIGNED_STORAGE flag since the fix breaks binary compatibility.
DEFINES += UNICODE _UNICODE WIN32 _ENABLE_EXTENDED_ALIGNED_STORAGE
QMAKE_COMPILER_DEFINES += _WIN32
contains(QMAKE_TARGET.arch, x86_64) {DEFINES += WIN64QMAKE_COMPILER_DEFINES += _WIN64
}QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Od
QMAKE_CFLAGS_OPTIMIZE = -O2
QMAKE_CFLAGS_OPTIMIZE_SIZE = -O1QMAKE_CC = cl
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = bison -y
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS = -nologo -Zc:wchar_t
QMAKE_CFLAGS_WARN_ON = -W3
QMAKE_CFLAGS_WARN_OFF = -W0
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MD
QMAKE_CFLAGS_DEBUG = -Zi -MDd
QMAKE_CFLAGS_YACC =
QMAKE_CFLAGS_LTCG = -GLcontains(QMAKE_TARGET.arch, x86_64) {# SSE2 is mandatory on 64-bit mode, so skip the option. It triggers:# cl : Command line warning D9002 : ignoring unknown option '-arch:SSE2'QMAKE_CFLAGS_SSE2 =
} else {QMAKE_CFLAGS_SSE2 = -arch:SSE2
}
QMAKE_CFLAGS_SSE3 = $$QMAKE_CFLAGS_SSE2
QMAKE_CFLAGS_SSSE3 = $$QMAKE_CFLAGS_SSE2
QMAKE_CFLAGS_SSE4_1 = $$QMAKE_CFLAGS_SSE2
QMAKE_CFLAGS_SSE4_2 = $$QMAKE_CFLAGS_SSE2
QMAKE_CFLAGS_AESNI = $$QMAKE_CFLAGS_SSE2
QMAKE_CFLAGS_SHANI = $$QMAKE_CFLAGS_SSE2QMAKE_CXX = $$QMAKE_CC
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189 -w44996
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
QMAKE_CXXFLAGS_STL_ON = -EHsc
QMAKE_CXXFLAGS_STL_OFF =
QMAKE_CXXFLAGS_RTTI_ON = -GR
QMAKE_CXXFLAGS_RTTI_OFF =
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
QMAKE_CXXFLAGS_EXCEPTIONS_OFF =QMAKE_INCDIR =QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<
#D:\Qt\Qt5.12.0\5.12.0\msvc2015_64\mkspecs\common\angle.conf
LIBEGL_NAME = libEGL
LIBGLESV2_NAME = libGLESv2
LIBQTANGLE_NAME = QtANGLE
#D:\Qt\Qt5.12.0\5.12.0\msvc2015_64\mkspecs\common\windows-vulkan.conf
QMAKE_INCDIR_VULKAN = $$(VULKAN_SDK)\\include
QMAKE_LIBS_VULKAN =
#D:\Qt\Qt5.12.0\5.12.0\msvc2015_64\mkspecs\qconfig.pri
QT_ARCH = x86_64
QT_BUILDABI = x86_64-little_endian-lp64
QT.global.enabled_features = shared debug_and_release build_all c++11 thread future concurrent
QT.global.disabled_features = cross_compile framework rpath appstore-compliant c++14 c++1z c99 c11 pkg-config force_asserts separate_debug_info simulator_and_device static
QT_CONFIG += shared debug_and_release debug release build_all c++11 concurrent dbus no-pkg-config stl
CONFIG += shared release no_plugin_manifest
QT_VERSION = 5.12.0
QT_MAJOR_VERSION = 5
QT_MINOR_VERSION = 12
QT_PATCH_VERSION = 0
QT_MSVC_MAJOR_VERSION = 19
QT_MSVC_MINOR_VERSION = 0
QT_MSVC_PATCH_VERSION = 24215
QT_EDITION = OpenSource
QT_LICHECK =
QT_RELEASE_DATE = 2018-12-03
mkspecs/modules/qt_lib_{module}.pri
qmake 与 配置文件_丘上人的博客-CSDN博客