cvc4 mkconst из std :: string в C ++ API

Мне нужно изменить «123» в const в C ++
что я закодировал как

ExprManager em;

Rational i = Rational("123",10);

Expr expri = em.mkConst(i);

или же

Integer i = Integer("123", 10);

Expr epri = em.mkConst(Rational(i,1));

но я получил ошибку

Неопределенные символы для архитектуры x86_64:
«___gmpq_canonicalize», по ссылке из:
__gmp_expr<__mpq_struct [1], __mpq_struct [1]> :: canonicalize () в ex1-4f9d4d.o
«___gmpq_clear», по ссылке от:
__gmp_expr<__mpq_struct [1], __mpq_struct [1]> :: ~ __gmp_expr () в ex1-4f9d4d.o
«___gmpz_clear», по ссылке от:
__gmp_expr<__mpz_struct [1], __mpz_struct [1]> :: ~ __gmp_expr () в ex1-4f9d4d.o
«___gmpz_init_set», по ссылке из:
__gmp_expr<__mpq_struct [1], __mpq_struct [1]> :: :: __gmp_expr (__ gmp_expr<__mpz_struct [1], __mpz_struct [1]> const&, __gmp_expr<__mpz_struct [1], __mpz_struct [1]> const&) в ex1-4f9d4d.o
«___gmpz_init_set_si», по ссылке из:
__gmp_expr<__mpz_struct [1], __mpz_struct [1]> :: init_si (long) в ex1-4f9d4d.o
ld: символы не найдены для архитектуры x86_64

0

Решение

Проблема выше вызвана отсутствием библиотеки GMP.
Установленный GMP с «brew install gmp» на Mac.
скомпилировать программу с флагом «-lgmp»

Задача решена.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector