使用为不同计算机编译的静态库

use a static library compiled for different machine

本文关键字:编译 静态 计算机      更新时间:2023-10-16

我从作者那里获得了一篇论文的代码。问题是他已经将一些部分编译成静态库(.a)一开始我无法使用它,因为我遇到了这个错误:

/usr/bin/ld: skipping incompatible ../lib/libmvvt.a when searching for -lmvvt
/usr/bin/ld: cannot find -lmvvt

我意识到这是一个兼容性问题。我编译了其余库的代码,现在我让它工作了,除了一个库,他没有提供源代码(只有标题)。

用readelf检查库内后,我可以看到机器是MIPS R3000。

我的机器是x86-64。

有没有办法让我在我的机器中使用库而不必重新编译它(因为我没有代码)?

谢谢!

有没有办法让我在我的机器中使用库而无需重新编译它(因为我没有代码)

不。

静态库是编译对象。就像不能在不同的不兼容体系结构中对一个体系结构使用可执行版本一样,也不能以相同的方式使用静态库。