首页 > 解决方案 > 不同的程序结果取决于程序的链接方式

问题描述

我正在开发一个大型数值模拟程序,主要用 Fortran 编写,使用 Intel Fortran 编译器 (v18.0.3) 编译。

最近遇到一个神秘的问题:如果我将程序与外部库链接为绝对路径,与链接的程序相比,数值结果略有不同-L/path/to/lib -lnameOfLib

我检查了以下内容:

我无法检查为什么会发生这种情况。如果有人可以进一步建议如何处理此问题以及差异可能源自何处,我将很高兴。

标签: fortranintel-fortran

解决方案


我将根据这个解释得出以下结论。与 /usr/lib/libm.so 链接时,libm.so将使用平台。链接时-lm,英特尔编译器将更改链接命令以链接英特尔数学库libimf.so。显然,这些不同的实现会给出导致差异的数值舍入误差。


推荐阅读