生产不建议使用fpc 3.3.1(Trunk)
近日QQ群的SunGod和啊D等发现fpc 3.3.1(Trunk)添加了和delphi一样的rtti功能,但fpc默认是没启用的。
启用RTTI的条件:
1、编译FPC时添加-dENABLE_DELPHI_RTTI
2、在fpc.cfg最后一行添加-dENABLE_DELPHI_RTTI
因编译fpc对我来说还是太麻烦,我喜欢用fpcudelux,下载最新fpcudelux源码,这是我的。
将fpcupdeluxe-2.4.0e\sources\installerfpc.pas的2062行
if FileExists(s2) then FPCBuildOptions:=FPCBuildOptions+' -dREVINC';
改为:
{$ifdef FORCEREVISION} if (ModuleName<>_REVISIONFPC) then begin if FUseRevInc then begin s2:=ConcatPaths([SourceDirectory,'compiler'])+DirectorySeparator+REVINCFILENAME; if FileExists(s2) then FPCBuildOptions:=FPCBuildOptions+' -dREVINC'+' -dENABLE_DELPHI_RTTI'; end else begin s2:=Trim(ActualRevision); s2:=AnsiDequotedStr(s2,''''); if ( (Length(s2)>1) AND (s2<>'failure') AND (Pos(' ',s2)=0) ) then begin Processor.SetParamNameData('REVSTR',s2); Processor.SetParamNameData('REVINC','force'); end; end; end; {$endif FORCEREVISION}
重新编译fpcupdelux后,用新的fpcupdelux重新编译fpc,并在fpc.cfg最后一行添加-dENABLE_DELPHI_RTTI
重新编译应用的效果:
标签:begin,end,fpc,s2,3.3,FPCBuildOptions,rtti From: https://www.cnblogs.com/qiufeng2014/p/18333985