您的位置:首页 > 其它

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

2017-08-10 23:31 435 查看
使用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

但是没有有效结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐