📄 msvc_objectmodel.cpp
字号:
default: found = FALSE; break; } break; case 'P': GeneratePreprocessedFile = preprocessYes; break; case 'Q': if ( second == 'I' ) { AdditionalOptions += option; break; } found = FALSE; break; case 'R': if ( second == 'T' && third == 'C' ) { if ( fourth == '1' ) BasicRuntimeChecks = runtimeBasicCheckAll; else if ( fourth == 'c' ) SmallerTypeCheck = _True; else if ( fourth == 's' ) BasicRuntimeChecks = runtimeCheckStackFrame; else if ( fourth == 'u' ) BasicRuntimeChecks = runtimeCheckUninitVariables; else found = FALSE; break; } break; case 'T': if ( second == 'C' ) { CompileAs = compileAsC; } else if ( second == 'P' ) { CompileAs = compileAsCPlusPlus; } else { qWarning( "Generator: Options '/Tp<filename>' and '/Tc<filename>' are not supported by qmake" ); found = FALSE; break; } break; case 'U': UndefinePreprocessorDefinitions += option+2; break; case 'V': AdditionalOptions += option; break; case 'W': switch ( second ) { case 'a': case '4': WarningLevel = warningLevel_4; break; case '3': WarningLevel = warningLevel_3; break; case '2': WarningLevel = warningLevel_2; break; case '1': WarningLevel = warningLevel_1; break; case '0': WarningLevel = warningLevel_0; break; case 'L': AdditionalOptions += option; break; case 'X': WarnAsError = _True; break; case 'p': if ( third == '6' && fourth == '4' ) { Detect64BitPortabilityProblems = _True; break; } // Fallthrough default: found = FALSE; break; } break; case 'X': IgnoreStandardIncludePath = _True; break; case 'Y': switch ( second ) { case '\0': case '-': AdditionalOptions += option; break; case 'X': UsePrecompiledHeader = pchGenerateAuto; PrecompiledHeaderFile = option+3; break; case 'c': UsePrecompiledHeader = pchCreateUsingSpecific; PrecompiledHeaderFile = option+3; break; case 'd': case 'l': AdditionalOptions =+ option; break; case 'u': UsePrecompiledHeader = pchUseUsingSpecific; PrecompiledHeaderFile = option+3; break; default: found = FALSE; break; } break; case 'Z': switch ( second ) { case '7': DebugInformationFormat = debugOldStyleInfo; break; case 'I': DebugInformationFormat = debugEditAndContinue; break; case 'd': DebugInformationFormat = debugLineInfoOnly; break; case 'i': DebugInformationFormat = debugEnabled; break; case 'l': DebugInformationFormat = debugEditAndContinue; break; case 'a': DisableLanguageExtensions = _True; break; case 'e': DisableLanguageExtensions = _False; break; case 'c': if ( third == ':' ) { if ( fourth == 'f' ) ForceConformanceInForLoopScope = _True; else if ( fourth == 'w' ) TreatWChar_tAsBuiltInType = _True; else found = FALSE; } else { found = FALSE; break; } break; case 'g': case 'm': case 's': AdditionalOptions += option; break; case 'p': switch ( third ) { case '\0': case '1': StructMemberAlignment = alignSingleByte; if ( fourth == '6' ) StructMemberAlignment = alignSixteenBytes; break; case '2': StructMemberAlignment = alignTwoBytes; break; case '4': StructMemberAlignment = alignFourBytes; break; case '8': StructMemberAlignment = alignEightBytes; break; default: found = FALSE; break; } break; default: found = FALSE; break; } break; case 'c': if ( second == '\0' ) { CompileOnly = _True; } else if ( second == 'l' ) { if ( *(option+5) == 'n' ) { CompileAsManaged = managedAssembly; TurnOffAssemblyGeneration = _True; } else { CompileAsManaged = managedAssembly; } } else { found = FALSE; break; } break; case 'd': if ( second != 'r' ) { found = FALSE; break; } CompileAsManaged = managedAssembly; break; case 'n': if ( second == 'o' && third == 'B' && fourth == 'o' ) { AdditionalOptions += "/noBool"; break; } if ( second == 'o' && third == 'l' && fourth == 'o' ) { SuppressStartupBanner = _True; break; } found = FALSE; break; case 's': if ( second == 'h' && third == 'o' && fourth == 'w' ) { ShowIncludes = _True; break; } found = FALSE; break; case 'u': UndefineAllPreprocessorDefinitions = _True; break; case 'v': if ( second == 'd' || second == 'm' ) { AdditionalOptions += option; break; } found = FALSE; break; case 'w': switch ( second ) { case '\0': WarningLevel = warningLevel_0; break; case 'd': DisableSpecificWarnings += option+3; break; default: AdditionalOptions += option; } break; default: found = FALSE; break; } if( !found ) warn_msg( WarnLogic, "Could not parse Compiler option: %s", option ); return TRUE;}// VCLinkerTool -----------------------------------------------------VCLinkerTool::VCLinkerTool() : EnableCOMDATFolding( optFoldingDefault ), GenerateDebugInformation( unset ), GenerateMapFile( unset ), HeapCommitSize( -1 ), HeapReserveSize( -1 ), IgnoreAllDefaultLibraries( unset ), IgnoreEmbeddedIDL( unset ), IgnoreImportLibrary( unset ), LargeAddressAware( addrAwareDefault ), LinkDLL( unset ), LinkIncremental( linkIncrementalYes ), LinkTimeCodeGeneration( unset ), MapExports( unset ), MapLines( unset ), OptimizeForWindows98( optWin98Default ), OptimizeReferences( optReferencesDefault ), RegisterOutput( unset ), ResourceOnlyDLL( unset ), SetChecksum( unset ), ShowProgress( linkProgressNotSet ), StackCommitSize( -1 ), StackReserveSize( -1 ), SubSystem( subSystemNotSet ), SupportUnloadOfDelayLoadedDLL( unset ), SuppressStartupBanner( unset ), SwapRunFromCD( unset ), SwapRunFromNet( unset ), TargetMachine( machineNotSet ), TerminalServerAware( termSvrAwareDefault ), TurnOffAssemblyGeneration( unset ), TypeLibraryResourceID( 0 ){}QTextStream &operator<<( QTextStream &strm, const VCLinkerTool &tool ){ strm << _begTool3; strm << _VCLinkerToolName; strm << XPair( _AdditionalDependencies4, tool.AdditionalDependencies, " " ); strm << XPair( _AdditionalLibraryDirectories, tool.AdditionalLibraryDirectories ); strm << XPair( _AdditionalOptions, tool.AdditionalOptions, " " ); strm << XPair( _AddModuleNamesToAssembly, tool.AddModuleNamesToAssembly ); strm << SPair( _BaseAddress, tool.BaseAddress ); strm << XPair( _DelayLoadDLLs, tool.DelayLoadDLLs ); if ( tool.EnableCOMDATFolding != optFoldingDefault ) strm << EPair( _EnableCOMDATFolding, tool.EnableCOMDATFolding ); strm << SPair( _EntryPointSymbol, tool.EntryPointSymbol ); strm << XPair( _ForceSymbolReferences, tool.ForceSymbolReferences ); strm << SPair( _FunctionOrder, tool.FunctionOrder ); strm << TPair( _GenerateDebugInformation, tool.GenerateDebugInformation ); strm << TPair( _GenerateMapFile, tool.GenerateMapFile ); if ( tool.HeapCommitSize != -1 ) strm << LPair( _HeapCommitSize, tool.HeapCommitSize ); if ( tool.HeapReserveSize != -1 ) strm << LPair( _HeapReserveSize, tool.HeapReserveSize ); strm << TPair( _IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries ); strm << XPair( _IgnoreDefaultLibraryNames, tool.IgnoreDefaultLibraryNames ); strm << TPair( _IgnoreEmbeddedIDL, tool.IgnoreEmbeddedIDL ); strm << TPair( _IgnoreImportLibrary, tool.IgnoreImportLibrary ); strm << SPair( _ImportLibrary, tool.ImportLibrary ); if ( tool.LargeAddressAware != addrAwareDefault ) strm << EPair( _LargeAddressAware, tool.LargeAddressAware ); strm << TPair( _LinkDLL, tool.LinkDLL ); if ( tool.LinkIncremental != linkIncrementalDefault ) strm << EPair( _LinkIncremental, tool.LinkIncremental ); strm << TPair( _LinkTimeCodeGeneration, tool.LinkTimeCodeGeneration ); strm << SPair( _LinkToManagedResourceFile, tool.LinkToManagedResourceFile ); strm << TPair( _MapExports, tool.MapExports ); strm << SPair( _MapFileName, tool.MapFileName ); strm << TPair( _MapLines, tool.MapLines ); strm << SPair( _MergedIDLBaseFileName, tool.MergedIDLBaseFileName ); strm << SPair( _MergeSections, tool.MergeSections ); strm << SPair( _MidlCommandFile, tool.MidlCommandFile ); strm << SPair( _ModuleDefinitionFile, tool.ModuleDefinitionFile ); if ( tool.OptimizeForWindows98 != optWin98Default ) strm << EPair( _OptimizeForWindows98, tool.OptimizeForWindows98 ); if ( tool.OptimizeReferences != optReferencesDefault ) strm << EPair( _OptimizeReferences, tool.OptimizeReferences ); strm << SPair( _OutputFile, tool.OutputFile ); strm << SPair( _ProgramDatabaseFile, tool.ProgramDatabaseFile ); strm << TPair( _RegisterOutput, tool.RegisterOutput ); strm << TPair( _ResourceOnlyDLL, tool.ResourceOnlyDLL ); strm << TPair( _SetChecksum, tool.SetChecksum ); if ( tool.ShowProgress != linkProgressNotSet ) strm << EPair( _ShowProgress, tool.ShowProgress ); if ( tool.StackCommitSize != -1 ) strm << LPair( _StackCommitSize, tool.StackCommitSize ); if ( tool.StackReserveSize != -1 ) strm << LPair( _StackReserveSize, tool.StackReserveSize ); strm << SPair( _StripPrivateSymbols, tool.StripPrivateSymbols ); strm << EPair( _SubSystem, tool.SubSystem ); strm << TPair( _SupportUnloadOfDelayLoadedDLL, tool.SupportUnloadOfDelayLoadedDLL ); strm << TPair( _SuppressStartupBanner, tool.SuppressStartupBanner ); strm << TPair( _SwapRunFromCD, tool.SwapRunFromCD ); strm << TPair( _SwapRunFromNet, tool.SwapRunFromNet ); if ( tool.TargetMachine != machineNotSet ) strm << EPair( _TargetMachine, tool.TargetMachine ); if ( tool.TerminalServerAware != termSvrAwareDefault ) strm << EPair( _TerminalServerAware, tool.TerminalServerAware ); strm << TPair( _TurnOffAssemblyGeneration, tool.TurnOffAssemblyGeneration ); strm << SPair( _TypeLibraryFile, tool.TypeLibraryFile ); if ( tool.TypeLibraryResourceID != rcUseDefault ) strm << LPair( _TypeLibraryResourceID, tool.TypeLibraryResourceID ); strm << SPair( _Version4, tool.Version ); strm << "/>"; return strm;}// Hashing routine to do fast option lookups ----// Slightly rewritten to stop on ':' ',' and '\0'// Original routine in qtranslator.cpp ----------static uint elfHash( const char* name ){ const uchar *k; uint h = 0; uint g; if ( name ) { k = (const uchar *) name; while ( (*k) && (*k)!= ':' && (*k)!=',' && (*k)!=' ' ) { h = ( h << 4 ) + *k++; if ( (g = (h & 0xf0000000)) != 0 ) h ^= g >> 24; h &= ~g; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -