Как проверить версию GMP, MPFR и CamlIDL? - PullRequest
3 голосов
/ 19 сентября 2011

У меня простой вопрос ... Как я могу проверить версию GMP, установленную на моей машине?А как насчет MPFR?А как насчет CamlIDL?

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 10 апреля 2014

Чтобы проверить версию GMP (MPIR), откройте строку __gmp_version (__ mpir_version) в динамической библиотеке с именем libgmp.so.XYZ (libmpir.so.XYZ).Каталог стандартной библиотеки может содержать более одного такого файла (это происходит, если вы устанавливаете более новую версию GMP или MPIR, но ваш менеджер пакетов решает сохранить старую версию, потому что она все еще необходима).

Отрезание небольшого Pythonфрагмент кода из benchmark_det_Dixon.py :

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;должна быть возможность портировать его на другую ОС, поддерживаемую пакетом Python ctypes.

Чтобы получить версию 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()
0 голосов
/ 20 сентября 2011

Стандартный способ Autoconf сделать это - выбрать библиотечную функцию с минимальной версией X, а не с версией X-1, а затем посмотреть, сможете ли вы успешно скомпилировать крошечную программу, которая вызывает эту функцию.Это не так элегантно, как запрос какого-то оракула для строки версии, но у него есть преимущество, демонстрирующее, что среда сборки действительно правильная.

...