我有两个第 3 方库 A.so 和 B.so,我将与我的可执行文件 executable.exe 链接在一起。A.so 包含一个由 B.so 解决的错误,也就是说:
A::subroutine1()
调用时可能会因浮点异常而崩溃(FP 算术错误)B::subroutine1()
是一个固定的实现,应该总是被调用而不是A::subroutine1()
.
A 和 B 的正确链接顺序是什么?我现在正在做的是:
ifort <....> executable.exe <...> -lA -lB
我仍然不时收到浮点异常(该错误无法准确重现,因此很难调试)。但是,当它崩溃时,程序让我知道 A::subroutine1() 是违规者 - 因此 subroutine1() 的错误版本由于某种原因被链接。
我将把链接顺序作为第一次插入,但是有没有一个工具可以用来检查executable.exe,看看在运行时会调用哪个版本的subroutine1()?
谢谢!