clang не может связать библиотеку теории чисел (неопределенные символы для архитектуры x86_64)

Я пытаюсь использовать библиотеку теории чисел (NTL), чтобы провести некоторое исследование. Я использовал компилятор g ++, пока не понял, что мне нужно использовать случайную библиотеку C ++ (которая, очевидно, не включена в g ++). Поэтому я переключился на компиляцию с помощью clang ++ со следующим параметром (с выводом). Это работает с g ++, если я не включаю случайную библиотеку (но, очевидно, мне это нужно для некоторой функциональности).

clang++ -Wall -O3 -std=c++11 -stdlib=libc++   -c -o Multimap.o Multimap.cpp
clang++ -Wall -O3 -std=c++11 -stdlib=libc++   -lgmpxx -lgmp -lntl -lm main.cpp Multimap.o -o ggh
Undefined symbols for architecture x86_64:
"std::basic_ios<char, std::char_traits<char> >::operator!() const", referenced from:
std::istream& NTL::operator>><NTL::ZZ_p>(std::istream&, NTL::Vec<NTL::ZZ_p>&) in libntl.a(ZZ_pX.o)
NTL::operator>>(std::istream&, NTL::ZZ&) in libntl.a(ZZ.o)
std::istream& NTL::operator>><NTL::ZZ>(std::istream&, NTL::Vec<NTL::ZZ>&) in libntl.a(ZZX.o)
std::istream& NTL::operator>><NTL::zz_p>(std::istream&, NTL::Vec<NTL::zz_p>&) in libntl.a(lzz_pX.o)
"std::istream::get()", referenced from:
std::istream& NTL::operator>><NTL::ZZ_p>(std::istream&, NTL::Vec<NTL::ZZ_p>&) in libntl.a(ZZ_pX.o)
NTL::SkipWhiteSpace(std::istream&) in libntl.a(tools.o)
NTL::operator>>(std::istream&, NTL::ZZ&) in libntl.a(ZZ.o)
std::istream& NTL::operator>><NTL::ZZ>(std::istream&, NTL::Vec<NTL::ZZ>&) in libntl.a(ZZX.o)
std::istream& NTL::operator>><NTL::zz_p>(std::istream&, NTL::Vec<NTL::zz_p>&) in libntl.a(lzz_pX.o)
"std::istream::peek()", referenced from:
std::istream& NTL::operator>><NTL::ZZ_p>(std::istream&, NTL::Vec<NTL::ZZ_p>&) in libntl.a(ZZ_pX.o)
NTL::SkipWhiteSpace(std::istream&) in libntl.a(tools.o)
NTL::operator>>(std::istream&, NTL::ZZ&) in libntl.a(ZZ.o)
std::istream& NTL::operator>><NTL::ZZ>(std::istream&, NTL::Vec<NTL::ZZ>&) in libntl.a(ZZX.o)
std::istream& NTL::operator>><NTL::zz_p>(std::istream&, NTL::Vec<NTL::zz_p>&) in libntl.a(lzz_pX.o)
"std::ostream::operator<<(long)", referenced from:
NTL::PrintTime(std::ostream&, double) in libntl.a(tools.o)
"std::ios_base::Init::Init()", referenced from:
__GLOBAL__I__ZN3NTL14BlockConstructEPNS_4ZZ_pEl in libntl.a(vec_ZZ_p.o)
__GLOBAL__I__ZN3NTL5ZZ_pX4zeroEv in libntl.a(ZZ_pX.o)
__GLOBAL__I__ZN3NTL10ZZ_pEInfoTC2ERKNS_5ZZ_pXE in libntl.a(ZZ_pE.o)
__GLOBAL__I__ZN3NTL9ZZ_pInfoTC2ERKNS_2ZZE in libntl.a(ZZ_p.o)
__GLOBAL__I__ntl_abort_cxx_callback in libntl.a(tools.o)
__GLOBAL__I__ZN3NTL2ZZ4zeroEv in libntl.a(ZZ.o)
__GLOBAL__I__ZN3NTL9FFTTablesE in libntl.a(FFT.o)
...
"std::ios_base::Init::~Init()", referenced from:
___tcf_4 in libntl.a(vec_ZZ_p.o)
___tcf_16 in libntl.a(ZZ_pX.o)
___tcf_1 in libntl.a(ZZ_pE.o)
___tcf_3 in libntl.a(ZZ_p.o)
___tcf_0 in libntl.a(tools.o)
___tcf_25 in libntl.a(ZZ.o)
___tcf_4 in libntl.a(FFT.o)
...
"std::cerr", referenced from:
NTL::Error(char const*) in libntl.a(tools.o)
NTL::IntValToChar(long) in libntl.a(tools.o)
"std::basic_ostream<char, std::char_traits<char> >& std::operator<<<std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
std::ostream& NTL::operator<<<NTL::ZZ_p>(std::ostream&, NTL::Vec<NTL::ZZ_p> const&) in libntl.a(ZZ_pX.o)
NTL::PrintTime(std::ostream&, double) in libntl.a(tools.o)
NTL::Error(char const*) in libntl.a(tools.o)
NTL::IntValToChar(long) in libntl.a(tools.o)
NTL::PrintDigits(std::ostream&, long, long) in libntl.a(ZZ.o)
NTL::operator<<(std::ostream&, NTL::ZZ const&) in libntl.a(ZZ.o)
std::ostream& NTL::operator<<<NTL::ZZ>(std::ostream&, NTL::Vec<NTL::ZZ> const&) in libntl.a(ZZX.o)
...
"std::basic_ostream<char, std::char_traits<char> >& std::operator<<<std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)", referenced from:
std::ostream& NTL::operator<<<NTL::ZZ_p>(std::ostream&, NTL::Vec<NTL::ZZ_p> const&) in libntl.a(ZZ_pX.o)
NTL::PrintDigits(std::ostream&, long, long) in libntl.a(ZZ.o)
std::ostream& NTL::operator<<<NTL::ZZ>(std::ostream&, NTL::Vec<NTL::ZZ> const&) in libntl.a(ZZX.o)
std::ostream& NTL::operator<<<NTL::zz_p>(std::ostream&, NTL::Vec<NTL::zz_p> const&) in libntl.a(lzz_pX.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

1

Решение

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

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


По вопросам рекламы [email protected]