Мне нужно изменить «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
Проблема выше вызвана отсутствием библиотеки GMP.
Установленный GMP с «brew install gmp» на Mac.
скомпилировать программу с флагом «-lgmp»
Задача решена.
Других решений пока нет …