在独立项目中使用GMP

Using GMP in freestanding programs

本文关键字:GMP 独立 项目      更新时间:2023-10-16

是否可以在独立环境中使用GMP?

我正在开发一个必须在裸机上运行的程序(为了减少开销,也为了安全起见——不允许外部代码),这迫使我创建一个极简主义内核,然而,我也需要对任意大的整数使用GMP。我看过迷你GMP,但它似乎比真正的(完整的)GMP慢几个数量级。

请注意:我已经研究过这个问题,但除了OP说他对迷你GMP很满意之外,似乎没有其他答案。。

您应该能够将静态库链接到独立的可执行文件中。这就像链接更多的对象文件一样。

因此,构建一个静态版本的GMP(最好使用-march=atom或任何适合您的目标硬件的版本)。把libgmp.a放在某个地方,然后用-Ldir告诉编译器在哪里。

我自己还没有在GMP中尝试过这种方法,所以我不能保证构建静态GMP不会有任何复杂情况,但大多数包的构建脚本都包括构建静态库的选项。(例如--enable-static