如何检查GMP、MPFR和CamlIDL的版本?

5

我的问题很简单...我该如何检查计算机上安装的GMP版本? MPFR呢? CamlIDL呢?

非常感谢。


关于 gmp,我没有在系统范围内安装它。我将其静态链接到了我的项目中。因此,我从 gmp.h 头文件或者在运行时使用 printf("%s", gmp_version); 找到了版本。 - rustyMagnet
2个回答

4
要检查GMP(MPIR)版本,请访问名为libgmp.so.X.Y.Z(libmpir.so.X.Y.Z)的动态库中的字符串__gmp_version(__mpir_version)。您的标准库目录可能包含多个此类文件(如果安装了更新版本的GMP或MPIR,但软件包管理器选择保留旧版本,因为它仍然需要使用)。
benchmark_det_Dixon.py中截取一个小的Python代码片段:
import ctypes
so_name='/usr/lib/libgmp.so' # or /usr/lib64/libgmp.so, etc
var_name='__gmp_version'
L=ctypes.cdll.LoadLibrary(so_name)
v=ctypes.c_char_p.in_dll(L,var_name)
print(v.value)

上面的代码仅适用于Linux/Unix,但应该可以将其移植到其他由ctypes Python包支持的操作系统。
要获取MPFR版本,请调用mpfr_get_version():
M=ctypes.cdll.LoadLibrary('/usr/lib/libmpfr.so') # or /usr/lib64, etc
M.mpfr_get_version.restype=ctypes.c_char_p
print(M.mpfr_get_version())

0

标准的Autoconf方法是选择一些最低版本为X且不在版本X-1中的库函数,然后尝试编译调用该函数的小程序。虽然这不像查询某个Oracle版本字符串那样优雅,但它具有证明构建环境实际上是正确的优点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接