Open
Description
Hi, I met few problems when I try to compile with librtorch.
I can use this Open Spiel without libtorch correctly, but when I:
- Turn on 'BUILD_WITH_LIBTORCH' and 'BUILD_WITH_LIBNOP'
- run ./install.sh # download libtorch
- run ./open_spiel/script/build_and_run_tests.sh
And I met these errors: Full Version
...
/usr/bin/ld: CMakeFiles/alpha_zero_torch_example.dir/alpha_zero_torch_example.cc.o: in function `main':
alpha_zero_torch_example.cc:(.text+0x8b0): undefined reference to `open_spiel::file::File::File(std::string const&, std::string const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text+0x8f1): undefined reference to `open_spiel::file::File::ReadContents()'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text+0xeb2): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text+0xf0d): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text+0xf1a): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch_example.dir/alpha_zero_torch_example.cc.o: in function `void* absl::flags_internal::FlagOps<std::string>(absl::flags_internal::FlagOp, void const*, void*, void*)':
alpha_zero_torch_example.cc:(.text._ZN4absl14flags_internal7FlagOpsISsEEPvNS0_6FlagOpEPKvS2_S2_[_ZN4absl14flags_internal7FlagOpsISsEEPvNS0_6FlagOpEPKvS2_S2_]+0x11f): undefined reference to `absl::flags_internal::AbslUnparseFlag(std::basic_string_view<char, std::char_traits<char> >)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN4absl14flags_internal7FlagOpsISsEEPvNS0_6FlagOpEPKvS2_S2_[_ZN4absl14flags_internal7FlagOpsISsEEPvNS0_6FlagOpEPKvS2_S2_]+0x1a1): undefined reference to `absl::flags_internal::AbslParseFlag(std::basic_string_view<char, std::char_traits<char> >, std::string*, std::string*)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch_example.dir/alpha_zero_torch_example.cc.o: in function `void* absl::flags_internal::FlagOps<int>(absl::flags_internal::FlagOp, void const*, void*, void*)':
alpha_zero_torch_example.cc:(.text._ZN4absl14flags_internal7FlagOpsIiEEPvNS0_6FlagOpEPKvS2_S2_[_ZN4absl14flags_internal7FlagOpsIiEEPvNS0_6FlagOpEPKvS2_S2_]+0x70): undefined reference to `absl::flags_internal::AbslParseFlag(std::basic_string_view<char, std::char_traits<char> >, int*, std::string*)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN4absl14flags_internal7FlagOpsIiEEPvNS0_6FlagOpEPKvS2_S2_[_ZN4absl14flags_internal7FlagOpsIiEEPvNS0_6FlagOpEPKvS2_S2_]+0x8e): undefined reference to `absl::flags_internal::Unparse(int)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch_example.dir/alpha_zero_torch_example.cc.o: in function `void* absl::flags_internal::FlagOps<double>(absl::flags_internal::FlagOp, void const*, void*, void*)':
alpha_zero_torch_example.cc:(.text._ZN4absl14flags_internal7FlagOpsIdEEPvNS0_6FlagOpEPKvS2_S2_[_ZN4absl14flags_internal7FlagOpsIdEEPvNS0_6FlagOpEPKvS2_S2_]+0x7b): undefined reference to `absl::flags_internal::AbslParseFlag(std::basic_string_view<char, std::char_traits<char> >, double*, std::string*)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN4absl14flags_internal7FlagOpsIdEEPvNS0_6FlagOpEPKvS2_S2_[_ZN4absl14flags_internal7FlagOpsIdEEPvNS0_6FlagOpEPKvS2_S2_]+0x9f): undefined reference to `absl::flags_internal::Unparse(double)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch_example.dir/alpha_zero_torch_example.cc.o: in function `void* absl::flags_internal::FlagOps<bool>(absl::flags_internal::FlagOp, void const*, void*, void*)':
alpha_zero_torch_example.cc:(.text._ZN4absl14flags_internal7FlagOpsIbEEPvNS0_6FlagOpEPKvS2_S2_[_ZN4absl14flags_internal7FlagOpsIbEEPvNS0_6FlagOpEPKvS2_S2_]+0x73): undefined reference to `absl::flags_internal::AbslParseFlag(std::basic_string_view<char, std::char_traits<char> >, bool*, std::string*)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN4absl14flags_internal7FlagOpsIbEEPvNS0_6FlagOpEPKvS2_S2_[_ZN4absl14flags_internal7FlagOpsIbEEPvNS0_6FlagOpEPKvS2_S2_]+0x92): undefined reference to `absl::flags_internal::Unparse(bool)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch_example.dir/alpha_zero_torch_example.cc.o: in function `open_spiel::algorithms::torch_az::AlphaZeroConfig::FromJson(std::map<std::string, open_spiel::json::Value, std::less<std::string>, std::allocator<std::pair<std::string const, open_spiel::json::Value> > > const&)':
alpha_zero_torch_example.cc:(.text._ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE[_ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE]+0x16ef): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE[_ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE]+0x16f9): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE[_ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE]+0x1737): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE[_ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE]+0x1741): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE[_ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE]+0x177f): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE[_ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE]+0x1789): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE[_ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE]+0x17c7): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE[_ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE]+0x17d1): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE[_ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE]+0x180f): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE[_ZN10open_spiel10algorithms8torch_az15AlphaZeroConfig8FromJsonERKSt3mapISsNS_4json5ValueESt4lessISsESaISt4pairIKSsS5_EEE]+0x1819): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch_example.dir/alpha_zero_torch_example.cc.o: in function `open_spiel::json::Value::GetInt() const':
alpha_zero_torch_example.cc:(.text._ZNK10open_spiel4json5Value6GetIntEv[_ZNK10open_spiel4json5Value6GetIntEv]+0x6a): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZNK10open_spiel4json5Value6GetIntEv[_ZNK10open_spiel4json5Value6GetIntEv]+0x72): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch_example.dir/alpha_zero_torch_example.cc.o: in function `open_spiel::json::Value::GetBool() const':
alpha_zero_torch_example.cc:(.text._ZNK10open_spiel4json5Value7GetBoolEv[_ZNK10open_spiel4json5Value7GetBoolEv]+0x69): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZNK10open_spiel4json5Value7GetBoolEv[_ZNK10open_spiel4json5Value7GetBoolEv]+0x71): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch_example.dir/alpha_zero_torch_example.cc.o: in function `open_spiel::json::Value::GetDouble() const':
alpha_zero_torch_example.cc:(.text._ZNK10open_spiel4json5Value9GetDoubleEv[_ZNK10open_spiel4json5Value9GetDoubleEv]+0x6b): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero_torch_example.cc:(.text._ZNK10open_spiel4json5Value9GetDoubleEv[_ZNK10open_spiel4json5Value9GetDoubleEv]+0x73): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: CMakeFiles/torch_vpnet_test.dir/vpnet_test.cc.o: in function `main':
vpnet_test.cc:(.text+0x118): undefined reference to `open_spiel::LoadGame(std::string const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x969): undefined reference to `open_spiel::LoadGame(std::string const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x12cc): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: vpnet_test.cc:(.text+0x16f2): undefined reference to `open_spiel::LoadGame(std::string const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x1919): undefined reference to `open_spiel::LoadGame(std::string const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x1ad1): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: vpnet_test.cc:(.text+0x2234): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x22ad): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x234a): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x23c0): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x2436): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: CMakeFiles/torch_vpnet_test.dir/vpnet_test.cc.o:vpnet_test.cc:(.text+0x24ac): more undefined references to `open_spiel::SpielFatalError(std::string const&)' follow
/usr/bin/ld: CMakeFiles/torch_vpnet_test.dir/vpnet_test.cc.o: in function `open_spiel::algorithms::torch_az::(anonymous namespace)::BuildModel(open_spiel::Game const&, std::string const&, bool)':
vpnet_test.cc:(.text+0x2dae): undefined reference to `open_spiel::file::GetTmpDir()'
/usr/bin/ld: vpnet_test.cc:(.text+0x2e0b): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x2f0b): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x2f15): undefined reference to `open_spiel::file::Exists(std::string const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x316b): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: vpnet_test.cc:(.text+0x31b3): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: CMakeFiles/torch_model_test.dir/model_test.cc.o: in function `main':
model_test.cc:(.text+0xc2): undefined reference to `open_spiel::LoadGame(std::string const&)'
/usr/bin/ld: model_test.cc:(.text+0x438): undefined reference to `absl::strings_internal::CatPieces(std::initializer_list<std::basic_string_view<char, std::char_traits<char> > >)'
/usr/bin/ld: model_test.cc:(.text+0x479): undefined reference to `open_spiel::LoadGame(std::string const&)'
/usr/bin/ld: model_test.cc:(.text+0x148f): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: model_test.cc:(.text+0x14f5): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: model_test.cc:(.text+0x157c): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: model_test.cc:(.text+0x15e2): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: model_test.cc:(.text+0x1648): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::StartInfoFromLearnerJson(std::string const&)':
alpha_zero.cc:(.text+0xb9): undefined reference to `open_spiel::file::File::File(std::string const&, std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0xf4): undefined reference to `open_spiel::file::File::ReadContents()'
/usr/bin/ld: alpha_zero.cc:(.text+0x901): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x90e): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::PlayGame(open_spiel::Logger*, int, open_spiel::Game const&, std::vector<std::unique_ptr<open_spiel::algorithms::MCTSBot, std::default_delete<open_spiel::algorithms::MCTSBot> >, std::allocator<std::unique_ptr<open_spiel::algorithms::MCTSBot, std::default_delete<open_spiel::algorithms::MCTSBot> > > >*, std::mersenne_twister_engine<unsigned long, 32ul, 624ul, 397ul, 31ul, 2567483615ul, 11ul, 4294967295ul, 7ul, 2636928640ul, 15ul, 4022730752ul, 18ul, 1812433253ul>*, double, int, double, bool)':
alpha_zero.cc:(.text+0x10fa): undefined reference to `bool absl::str_format_internal::FormatArgImpl::Dispatch<std::string>(absl::str_format_internal::FormatArgImpl::Data, absl::str_format_internal::FormatConversionSpecImpl, void*)'
/usr/bin/ld: alpha_zero.cc:(.text+0x111f): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x13ba): undefined reference to `bool absl::str_format_internal::FormatArgImpl::Dispatch<std::string>(absl::str_format_internal::FormatArgImpl::Data, absl::str_format_internal::FormatConversionSpecImpl, void*)'
/usr/bin/ld: alpha_zero.cc:(.text+0x13f6): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::actor(open_spiel::Game const&, open_spiel::algorithms::torch_az::AlphaZeroConfig const&, int, open_spiel::ThreadedQueue<open_spiel::algorithms::torch_az::Trajectory>*, std::shared_ptr<open_spiel::algorithms::torch_az::VPNetEvaluator>, open_spiel::StopToken*)':
alpha_zero.cc:(.text+0x1860): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::evaluator(open_spiel::Game const&, open_spiel::algorithms::torch_az::AlphaZeroConfig const&, int, open_spiel::algorithms::torch_az::EvalResults*, std::shared_ptr<open_spiel::algorithms::torch_az::VPNetEvaluator>, open_spiel::StopToken*)':
alpha_zero.cc:(.text+0x21b3): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x2847): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::learner(open_spiel::Game const&, open_spiel::algorithms::torch_az::AlphaZeroConfig const&, open_spiel::algorithms::torch_az::DeviceManager*, std::shared_ptr<open_spiel::algorithms::torch_az::VPNetEvaluator>, open_spiel::ThreadedQueue<open_spiel::algorithms::torch_az::Trajectory>*, open_spiel::algorithms::torch_az::EvalResults*, open_spiel::StopToken*, open_spiel::algorithms::torch_az::StartInfo const&)':
alpha_zero.cc:(.text+0x2f21): undefined reference to `open_spiel::DataLoggerJsonLines::DataLoggerJsonLines(std::string const&, std::string const&, bool, std::string const&, absl::Time)'
/usr/bin/ld: alpha_zero.cc:(.text+0x30c7): undefined reference to `bool absl::str_format_internal::FormatArgImpl::Dispatch<std::string>(absl::str_format_internal::FormatArgImpl::Data, absl::str_format_internal::FormatConversionSpecImpl, void*)'
/usr/bin/ld: alpha_zero.cc:(.text+0x30f9): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x4118): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x42bb): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x4896): undefined reference to `bool absl::str_format_internal::FormatArgImpl::Dispatch<std::string>(absl::str_format_internal::FormatArgImpl::Data, absl::str_format_internal::FormatConversionSpecImpl, void*)'
/usr/bin/ld: alpha_zero.cc:(.text+0x48cb): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x5f25): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x607a): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x6600): undefined reference to `open_spiel::DataLoggerJsonLines::Write(std::map<std::string, open_spiel::json::Value, std::less<std::string>, std::allocator<std::pair<std::string const, open_spiel::json::Value> > >)'
/usr/bin/ld: CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::AlphaZero(open_spiel::algorithms::torch_az::AlphaZeroConfig, open_spiel::StopToken*, bool)':
alpha_zero.cc:(.text+0x7da8): undefined reference to `open_spiel::LoadGame(std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x7e07): undefined reference to `open_spiel::file::Mkdirs(std::string const&, int)'
/usr/bin/ld: alpha_zero.cc:/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::StartInfoFromLearnerJson(std::string const&)':
alpha_zero.cc:(.text+0xb9): undefined reference to `open_spiel::file::File::File(std::string const&, std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0xf4): undefined reference to `open_spiel::file::File::ReadContents()'
/usr/bin/ld: alpha_zero.cc:(.text+0x901): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x90e): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::PlayGame(open_spiel::Logger*, int, open_spiel::Game const&, std::vector<std::unique_ptr<open_spiel::algorithms::MCTSBot, std::default_delete<open_spiel::algorithms::MCTSBot> >, std::allocator<std::unique_ptr<open_spiel::algorithms::MCTSBot, std::default_delete<open_spiel::algorithms::MCTSBot> > > >*, std::mersenne_twister_engine<unsigned long, 32ul, 624ul, 397ul, 31ul, 2567483615ul, 11ul, 4294967295ul, 7ul, 2636928640ul, 15ul, 4022730752ul, 18ul, 1812433253ul>*, double, int, double, bool)':
alpha_zero.cc:(.text+0x10fa): undefined reference to `bool absl::str_format_internal::FormatArgImpl::Dispatch<std::string>(absl::str_format_internal::FormatArgImpl::Data, absl::str_format_internal::FormatConversionSpecImpl, void*)'
/usr/bin/ld: alpha_zero.cc:(.text+0x111f): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x13ba): undefined reference to `bool absl::str_format_internal::FormatArgImpl::Dispatch<std::string>(absl::str_format_internal::FormatArgImpl::Data, absl::str_format_internal::FormatConversionSpecImpl, void*)'
/usr/bin/ld: alpha_zero.cc:(.text+0x13f6): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::actor(open_spiel::Game const&, open_spiel::algorithms::torch_az::AlphaZeroConfig const&, int, open_spiel::ThreadedQueue<open_spiel::algorithms::torch_az::Trajectory>*, std::shared_ptr<open_spiel::algorithms::torch_az::VPNetEvaluator>, open_spiel::StopToken*)':
alpha_zero.cc:(.text+0x1860): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::evaluator(open_spiel::Game const&, open_spiel::algorithms::torch_az::AlphaZeroConfig const&, int, open_spiel::algorithms::torch_az::EvalResults*, std::shared_ptr<open_spiel::algorithms::torch_az::VPNetEvaluator>, open_spiel::StopToken*)':
alpha_zero.cc:(.text+0x21b3): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x2847): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::learner(open_spiel::Game const&, open_spiel::algorithms::torch_az::AlphaZeroConfig const&, open_spiel::algorithms::torch_az::DeviceManager*, std::shared_ptr<open_spiel::algorithms::torch_az::VPNetEvaluator>, open_spiel::ThreadedQueue<open_spiel::algorithms::torch_az::Trajectory>*, open_spiel::algorithms::torch_az::EvalResults*, open_spiel::StopToken*, open_spiel::algorithms::torch_az::StartInfo const&)':
alpha_zero.cc:(.text+0x2f21): undefined reference to `open_spiel::DataLoggerJsonLines::DataLoggerJsonLines(std::string const&, std::string const&, bool, std::string const&, absl::Time)'
/usr/bin/ld: alpha_zero.cc:(.text+0x30c7): undefined reference to `bool absl::str_format_internal::FormatArgImpl::Dispatch<std::string>(absl::str_format_internal::FormatArgImpl::Data, absl::str_format_internal::FormatConversionSpecImpl, void*)'
/usr/bin/ld: alpha_zero.cc:(.text+0x30f9): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x4118): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x42bb): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x4896): undefined reference to `bool absl::str_format_internal::FormatArgImpl::Dispatch<std::string>(absl::str_format_internal::FormatArgImpl::Data, absl::str_format_internal::FormatConversionSpecImpl, void*)'
/usr/bin/ld: alpha_zero.cc:(.text+0x48cb): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x5f25): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x607a): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text+0x6600): undefined reference to `open_spiel::DataLoggerJsonLines::Write(std::map<std::string, open_spiel::json::Value, std::less<std::string>, std::allocator<std::pair<std::string const, open_spiel::json::Value> > >)'
/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::algorithms::torch_az::AlphaZero(open_spiel::algorithms::torch_az::AlphaZeroConfig, open_spiel::StopToken*, bool)':
alpha_zero.cc:(.text+0x7da8): undefined reference to `open_spiel::LoadGame(std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x7e07): undefined reference to `open_spiel::file::Mkdirs(std::string const&, int)'
/usr/bin/ld: alpha_zero.cc:(.text+0x7e11): undefined reference to `open_spiel::file::IsDirectory(std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x7f72): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x7f7c): undefined reference to `open_spiel::file::Exists(std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x808c): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x8096): undefined reference to `open_spiel::file::Exists(std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x84d4): undefined reference to `open_spiel::file::File::File(std::string const&, std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x8526): undefined reference to `open_spiel::json::ToString(std::map<std::string, open_spiel::json::Value, std::less<std::string>, std::allocator<std::pair<std::string const, open_spiel::json::Value> > > const&, bool, int)'
/usr/bin/ld: alpha_zero.cc:(.text+0x9bf9): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x9c1c): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x9c3f): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text+0x9ccf): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::json::Value::GetDouble()':
alpha_zero.cc:(.text._ZN10open_spiel4json5Value9GetDoubleEv[_ZN10open_spiel4json5Value9GetDoubleEv]+0x6a): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero.cc:(.text._ZN10open_spiel4json5Value9GetDoubleEv[_ZN10open_spiel4json5Value9GetDoubleEv]+0x72): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::json::Value::GetInt()':
alpha_zero.cc:(.text._ZN10open_spiel4json5Value6GetIntEv[_ZN10open_spiel4json5Value6GetIntEv]+0x6a): undefined reference to `absl::StrCat(absl::AlphaNum const&, absl::AlphaNum const&)'
/usr/bin/ld: alpha_zero.cc:(.text._ZN10open_spiel4json5Value6GetIntEv[_ZN10open_spiel4json5Value6GetIntEv]+0x72): undefined reference to `open_spiel::SpielFatalError(std::string const&)'
/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::FileLogger::FileLogger(std::string const&, std::string const&, std::string const&)':
alpha_zero.cc:(.text._ZN10open_spiel10FileLoggerC2ERKSsS2_S2_[_ZN10open_spiel10FileLoggerC2ERKSsS2_S2_]+0x2c): undefined reference to `bool absl::str_format_internal::FormatArgImpl::Dispatch<std::string>(absl::str_format_internal::FormatArgImpl::Data, absl::str_format_internal::FormatConversionSpecImpl, void*)'
/usr/bin/ld: alpha_zero.cc:(.text._ZN10open_spiel10FileLoggerC2ERKSsS2_S2_[_ZN10open_spiel10FileLoggerC2ERKSsS2_S2_]+0x5c): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: alpha_zero.cc:(.text._ZN10open_spiel10FileLoggerC2ERKSsS2_S2_[_ZN10open_spiel10FileLoggerC2ERKSsS2_S2_]+0x70): undefined reference to `open_spiel::file::File::File(std::string const&, std::string const&)'
/usr/bin/ld: alpha_zero.cc:(.text._ZN10open_spiel10FileLoggerC2ERKSsS2_S2_[_ZN10open_spiel10FileLoggerC2ERKSsS2_S2_]+0xb6): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `void open_spiel::Logger::Print<int, double, double, int, unsigned long>(absl::str_format_internal::FormatSpecTemplate<str_format_internal::ArgumentToConv<int>(), str_format_internal::ArgumentToConv<double>(), str_format_internal::ArgumentToConv<double>(), str_format_internal::ArgumentToConv<int>(), str_format_internal::ArgumentToConv<unsigned long>()> const&, int const&, double const&, double const&, int const&, unsigned long const&)':
alpha_zero.cc:(.text._ZN10open_spiel6Logger5PrintIiJddimEEEvRKN4absl19str_format_internal18FormatSpecTemplateIJXclsr19str_format_internalE14ArgumentToConvIT_EEEXspclsr19str_format_internalE14ArgumentToConvIT0_EEEEEERKS5_DpRKS6_[_ZN10open_spiel6Logger5PrintIiJddimEEEvRKN4absl19str_format_internal18FormatSpecTemplateIJXclsr19str_format_internalE14ArgumentToConvIT_EEEXspclsr19str_format_internalE14ArgumentToConvIT0_EEEEEERKS5_DpRKS6_]+0x83): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::FileLogger::Print(std::string const&)':
alpha_zero.cc:(.text._ZN10open_spiel10FileLogger5PrintERKSs[_ZN10open_spiel10FileLogger5PrintERKSs]+0x33): undefined reference to `absl::FormatTime(std::basic_string_view<char, std::char_traits<char> >, absl::Time, absl::TimeZone)'
/usr/bin/ld: alpha_zero.cc:(.text._ZN10open_spiel10FileLogger5PrintERKSs[_ZN10open_spiel10FileLogger5PrintERKSs]+0x3f): undefined reference to `bool absl::str_format_internal::FormatArgImpl::Dispatch<std::string>(absl::str_format_internal::FormatArgImpl::Data, absl::str_format_internal::FormatConversionSpecImpl, void*)'
/usr/bin/ld: alpha_zero.cc:(.text._ZN10open_spiel10FileLogger5PrintERKSs[_ZN10open_spiel10FileLogger5PrintERKSs]+0x6d): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
/usr/bin/ld: ../algorithms/alpha_zero_torch/CMakeFiles/alpha_zero_torch.dir/alpha_zero.cc.o: in function `open_spiel::SerializableCircularBuffer<open_spiel::algorithms::torch_az::VPNetModel::TrainInputs>::LoadBuffer(std::string const&)':
alpha_zero.cc:(.text._ZN10open_spiel26SerializableCircularBufferINS_10algorithms8torch_az10VPNetModel11TrainInputsEE10LoadBufferERKSs[_ZN10open_spiel26SerializableCircularBufferINS_10algorithms8torch_az10VPNetModel11TrainInputsEE10LoadBufferERKSs]+0x19f): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl,
alpha_zero.cc:(.text._ZN10open_spiel26SerializableCircularBufferINS_10algorithms8torch_az10VPNetModel11TrainInputsEE10LoadBufferERKSs[_ZN10open_spiel26SerializableCircularBufferINS_10algorithms8torch_az10VPNetModel11TrainInputsEE10LoadBufferERKSs]+0x19f): undefined reference to `absl::str_format_internal::FormatPack(absl::str_format_internal::UntypedFormatSpecImpl, absl::Span<absl::str_format_internal::FormatArgImpl const>)'
...
And I think the problem might be related to linking with ABSL?
Please help me solving this problem, big thank you!