gpt4 book ai didi

用于arm-linux的浮点SQlite3问题

转载 作者:行者123 更新时间:2023-12-01 11:27:05 28 4
gpt4 key购买 nike

我正在尝试在两台机器上使用 sqlite-3.7.2 交叉编译它,一个 arm-linux 和一个 xscale 系统,我已经使用 ./configure 以非常正常的方式对两个系统进行交叉编译,当然表明主机编译。

问题是我在数据库上有一些 REAL 值。我得到了 xscale 系统的正确值,但是在 arm7 上,我的意思是那些有小数部分的值不正确;

如果我的数据库表中有:
真实 2.00
真实 2.02

当我选择这些值时,我得到:
2.00
-4310086189061.12

因为 xscale 工作正常,所以我认为这是 arm 的 sqlite 编译问题。

我做了一个研究,我没有找到这么多,只是这个:
http://www.mail-archive.com/sqlite-users@sqlite.org/msg40528.html
建议在编译时在哪里使用 -DSQLITE_MIXED_ENDIAN_64BIT_FLOAT=1 标志,但我在代码中找不到它,并且仅将其添加到 configure 或 Makefie.am 文件中不起作用。

如果有人对此问题有任何解决方案或信息,我将不胜感激,因为我完全陷入困境

非常感谢

JC

编辑:
对我有用的解决方案,在交叉编译 sqlite3 之前,在环境中定义变量 CFLAGS:

$ CFLAGS="-DSQLITE_MIXED_ENDIAN_64BIT_FLOAT=1 -DSQLITE_DEBUG=1"
$ 导出 CFLAGS

最佳答案

从OP的评论中:

For those that could have my same problem, I've finally solved it. On the code is explained for the flag SQLITE_MIXED_ENDIAN_64BIT_FLOAT what is the issue.

To solve it, is necessary to define on CFLAGS environment this flag (-DSQLITE_MIXED_ENDIAN_64BIT_FLOAT=1) and the flag -DSQLITE_DEBUG=1, this last flag assure to get the correct value. So,


$ CFLAGS="-DSQLITE_MIXED_ENDIAN_64BIT_FLOAT=1 -DSQLITE_DEBUG=1"

$ 导出 CFLAGS

关于用于arm-linux的浮点SQlite3问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5714513/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com