我们有一个带有相应JUnit测试套件的Java项目,我们打算在Linux平台上运行它。它是使用Windows开发的,没有任何问题。当在Linux上使用gradle test运行我们的单元测试套件时,浮点差异开始出现。IntelliJ测试跑步器和Gradle内置测试跑步器似乎也有区别。使用的JDK : Sun JDK 1.8u91 x64
Running tests using 'gradle test' on Linux:
这是我在32位Linux上使用gcc 4.4.7以及在64位Linux上使用英特尔和PGI编译器获得的结果。然而,对于64位Linux上的gcc (测试版本4.4.7、4.7.2和4.8.0,包括-O0和-O2),双变量b具有预期值,但浮点数a变为-1。相比之下,在我测试的所有编译器和系统上,以下语句都会将a和b设置为ULONG_MAX的浮点表示形式:unsigned long y = -x;
float a
我目前正在我的Ubuntu机器上为Raspberry Pi执行一些交叉编译测试。我目前的理解是,Raspberry支持硬件浮点,默认的Raspbian映像是用硬件浮点(armhf)构建的。如果我使用" ARM -linux-gnueabi“工具链构建我的应用程序(没有指定任何ARM标志),那么我的应用程序将使用软浮动ABI。对,是这样?FYI:我的默认arm-linux-gnueabi配置如下:--with-arch=armv5
我正在像这样编译我的应用程序