2011-09-19 70 views

回答

0

標準Autoconf的方式做,這是挑選一些庫函數是在需要的最低版本X,而不是在版本X-1,然後看看你能不能成功編譯一個小程序,調用該函數。它不像查詢某個oracle版本字符串那樣優雅,但它具有證明構建環境實際上是正確的優勢。

1

要檢查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' 
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') 
M.mpfr_get_version.restype=ctypes.c_char_p 
print M.mpfr_get_version()