Как да проверя версията на GMP, MPFR и CamlIDL?

Въпросът ми е прост... Как мога да проверя версията на GMP, инсталирана на моята машина? Какво ще кажете за MPFR? А какво да кажем за CamlIDL?

Благодаря ти много


person SoftTimur    schedule 19.09.2011    source източник
comment
Относно gmp, не го инсталирах за цялата система. Статично го свързах с моя проект. Така че намерих версията от заглавния файл gmp.h или - по време на изпълнение - printf("%s", gmp_version);   -  person rustyMagnet    schedule 13.04.2020


Отговори (2)


За да проверите за GMP(MPIR) версия, отворете низ __gmp_version(__mpir_version) в динамична библиотека, наречена libgmp.so.X.Y.Z(libmpir.so.X.Y.Z). Вашата стандартна библиотечна директория може да съдържа повече от един такъв файл (това се случва, ако инсталирате по-нова версия на 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; трябва да е възможно да го пренесете към друга операционна система, поддържана от 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()
person Kryskov Denis    schedule 10.04.2014

Стандартният начин на Autoconf да направите това е да изберете някаква библиотечна функция, която е в необходимата минимална версия X, а не във версия X-1, след което вижте дали можете успешно да компилирате малка програма, която извиква тази функция. Не е толкова елегантно, колкото запитването към някакъв оракул за низ от версия, но има предимството да демонстрира, че средата за компилиране е действително правилна.

person Chris Conway    schedule 19.09.2011