Skip to content

Cannot Compile with libtorch #966

Open
@mcc311

Description

@mcc311

Hi, I met few problems when I try to compile with librtorch.
I can use this Open Spiel without libtorch correctly, but when I:

  1. Turn on 'BUILD_WITH_LIBTORCH' and 'BUILD_WITH_LIBNOP'
  2. run ./install.sh # download libtorch
  3. 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    contribution welcomeIt's a nice feature! But we do not have the time to do it ourselves. Contribution welcomed!help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions