待解决:如何打开lazarus中math.pp下FPDOC_MATH编译选项

使用math单元中的max和min函数时发现仅能支持长整形,如果使用了浮点型,则会收到形如

Error: Incompatible type for arg no. 2: Got “Single”, expected “LongInt”

的错误提示。
检查了math.pp的内容,发现此处的代码如下

{$ifdef FPC_HAS_TYPE_SINGLE}
  function Min(a, b: Single): Single;inline; overload;
  function Max(a, b: Single): Single;inline; overload;
{$endif FPC_HAS_TYPE_SINGLE}
{$ifdef FPC_HAS_TYPE_DOUBLE}
  function Min(a, b: Double): Double;inline; overload;
  function Max(a, b: Double): Double;inline; overload;
{$endif FPC_HAS_TYPE_DOUBLE}
{$ifdef FPC_HAS_TYPE_EXTENDED}
  function Min(a, b: Extended): Extended;inline; overload;
  function Max(a, b: Extended): Extended;inline; overload;
{$endif FPC_HAS_TYPE_EXTENDED}  

其它形式的函数被放在三个条件编译处,再往上追溯,发现这三个定义被另一个条件约束

{$IFDEF FPDOC_MATH}
{$DEFINE FPC_HAS_TYPE_SINGLE}
{$DEFINE FPC_HAS_TYPE_DOUBLE}
{$DEFINE FPC_HAS_TYPE_EXTENDED}
{$DEFINE FPC_HAS_TYPE_COMP}
Type
  Float = MaxFloatType;

{$ENDIF} 

然而并不能直接在math.pp中通过增加

{$DEFINE FPDOC_MATH}

来开启这个开关。

尝试了在Project Option的Custom Options中设置-dFPDOC_MATH,无效。

发现了两个相关讨论
Right way to turn FPDOC_MATH on?
How to turn on FPC_HAS_TYPE_COMP

但是没有有效结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值