pykeio / ort

Fast ML inference & training for Rust with ONNX Runtime
https://ort.pyke.io/
Apache License 2.0
786 stars 91 forks source link

linux link error #216

Closed 86maid closed 2 months ago

86maid commented 2 months ago
root@XChuang233:/home/fuck/new_ddddocr/ddddocr# ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9.7) 2.31
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

root@XChuang233:/home/fuck/new_ddddocr/ddddocr# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
Codename:       focal
  = note: /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(onnxruntime_c_api.cc.o): in function `std::unique_ptr<char, Ort::detail::AllocatedFree>& absl::lts_20240116::inlined_vector_internal::Storage<std::unique_ptr<char, Ort::detail::AllocatedFree>, 3ul, std::allocator<std::unique_ptr<char, Ort::detail::AllocatedFree> > >::EmplaceBackSlow<std::unique_ptr<char, Ort::detail::AllocatedFree> >(std::unique_ptr<char, Ort::detail::AllocatedFree>&&) [clone .isra.0]':
          onnxruntime_c_api.cc:(.text._ZN4absl12lts_2024011623inlined_vector_internal7StorageISt10unique_ptrIcN3Ort6detail13AllocatedFreeEELm3ESaIS7_EE15EmplaceBackSlowIJS7_EEERS7_DpOT_.isra.0+0x137): undefined reference to `std::__throw_bad_array_new_length()'
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(onnxruntime_c_api.cc.o): in function `std::unique_ptr<OrtValue, std::default_delete<OrtValue> >& absl::lts_20240116::inlined_vector_internal::Storage<std::unique_ptr<OrtValue, std::default_delete<OrtValue> >, 6ul, std::allocator<std::unique_ptr<OrtValue, std::default_delete<OrtValue> > > >::EmplaceBackSlow<std::unique_ptr<OrtValue, std::default_delete<OrtValue> > >(std::unique_ptr<OrtValue, std::default_delete<OrtValue> >&&) [clone .isra.0]':
          onnxruntime_c_api.cc:(.text._ZN4absl12lts_2024011623inlined_vector_internal7StorageISt10unique_ptrI8OrtValueSt14default_deleteIS4_EELm6ESaIS7_EE15EmplaceBackSlowIJS7_EEERS7_DpOT_.isra.0+0x1d7): undefined reference to `std::__throw_bad_array_new_length()'
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(onnxruntime_c_api.cc.o): in function `void std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_assign<std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> > const&, std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, true> > > >(std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> > const&, std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, true> > > const&) [clone .isra.0]':
          onnxruntime_c_api.cc:(.text._ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE9_M_assignIRKSL_NSA_10_AllocNodeISaINSA_10_Hash_nodeIS8_Lb1EEEEEEEEvOT_RKT0_.isra.0+0x373): undefined reference to `std::__throw_bad_array_new_length()'
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(onnxruntime_c_api.cc.o): in function `absl::lts_20240116::inlined_vector_internal::Storage<std::unique_ptr<char, Ort::detail::AllocatedFree>, 3ul, std::allocator<std::unique_ptr<char, Ort::detail::AllocatedFree> > >::Reserve(unsigned long)':
          onnxruntime_c_api.cc:(.text._ZN4absl12lts_2024011623inlined_vector_internal7StorageISt10unique_ptrIcN3Ort6detail13AllocatedFreeEELm3ESaIS7_EE7ReserveEm[_ZN4absl12lts_2024011623inlined_vector_internal7StorageISt10unique_ptrIcN3Ort6detail13AllocatedFreeEELm3ESaIS7_EE7ReserveEm]+0x127): undefined reference to `std::__throw_bad_array_new_length()'
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(onnxruntime_c_api.cc.o): in function `OrtApis::GetBoundOutputValues(OrtIoBinding const*, OrtAllocator*, OrtValue***, unsigned long*)':
          onnxruntime_c_api.cc:(.text._ZN7OrtApis20GetBoundOutputValuesEPK12OrtIoBindingP12OrtAllocatorPPP8OrtValuePm+0x541): undefined reference to `std::__throw_bad_array_new_length()'
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(onnxruntime_c_api.cc.o):onnxruntime_c_api.cc:(.text._ZN11onnxruntime20OnnxRuntimeExceptionC2ERKNS_12CodeLocationEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN11onnxruntime20OnnxRuntimeExceptionC5ERKNS_12CodeLocationEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x9ae): more undefined references to `std::__throw_bad_array_new_length()' follow
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(regexp.cc.o): in function `re2::ConvertRunesToBytes(bool, int*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
          regexp.cc:(.text._ZN3re219ConvertRunesToBytesEbPiiPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xbe): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve()'
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(subgraph_base.cc.o): in function `OrtDevice const*& absl::lts_20240116::inlined_vector_internal::Storage<OrtDevice const*, 6ul, std::allocator<OrtDevice const*> >::EmplaceBackSlow<OrtDevice const*>(OrtDevice const*&&) [clone .isra.0]':
          subgraph_base.cc:(.text._ZN4absl12lts_2024011623inlined_vector_internal7StorageIPK9OrtDeviceLm6ESaIS5_EE15EmplaceBackSlowIJS5_EEERS5_DpOT_.isra.0+0x11f): undefined reference to `std::__throw_bad_array_new_length()'
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(subgraph_base.cc.o): in function `OrtDevice& absl::lts_20240116::inlined_vector_internal::Storage<OrtDevice, 11ul, std::allocator<OrtDevice> >::EmplaceBackSlow<OrtDevice>(OrtDevice&&) [clone .isra.0]':
          subgraph_base.cc:(.text._ZN4absl12lts_2024011623inlined_vector_internal7StorageI9OrtDeviceLm11ESaIS3_EE15EmplaceBackSlowIJS3_EEERS3_DpOT_.isra.0+0xd7): undefined reference to `std::__throw_bad_array_new_length()'
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(subgraph_base.cc.o): in function `std::basic_string_view<char, std::char_traits<char> >& absl::lts_20240116::inlined_vector_internal::Storage<std::basic_string_view<char, std::char_traits<char> >, 3ul, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >::EmplaceBackSlow<std::basic_string_view<char, std::char_traits<char> > >(std::basic_string_view<char, std::char_traits<char> >&&) [clone .isra.0]':
          subgraph_base.cc:(.text._ZN4absl12lts_2024011623inlined_vector_internal7StorageISt17basic_string_viewIcSt11char_traitsIcEELm3ESaIS6_EE15EmplaceBackSlowIJS6_EEERS6_DpOT_.isra.0+0xd7): undefined reference to `std::__throw_bad_array_new_length()'
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(subgraph_base.cc.o): in function `OrtDevice& absl::lts_20240116::inlined_vector_internal::Storage<OrtDevice, 11ul, std::allocator<OrtDevice> >::EmplaceBackSlow<OrtDevice const&>(OrtDevice const&) [clone .isra.0]':
          subgraph_base.cc:(.text._ZN4absl12lts_2024011623inlined_vector_internal7StorageI9OrtDeviceLm11ESaIS3_EE15EmplaceBackSlowIJRKS3_EEERS3_DpOT_.isra.0+0xd7): undefined reference to `std::__throw_bad_array_new_length()'
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(subgraph_base.cc.o): in function `onnxruntime::contrib::transformers::Subgraph::Setup(onnxruntime::SessionState const&, onnxruntime::SessionState const&)':
          subgraph_base.cc:(.text._ZN11onnxruntime7contrib12transformers8Subgraph5SetupERKNS_12SessionStateES5_+0xc51): undefined reference to `std::__throw_bad_array_new_length()'
          /usr/bin/ld: /root/.cache/ort.pyke.io/dfbin/x86_64-unknown-linux-gnu/6FAF334246A635808FCDAC6D5550C4D56814B1E92CCA5FC0642AF41437BF071F/onnxruntime/lib/libonnxruntime.a(subgraph_base.cc.o):subgraph_base.cc:(.text._ZN11onnxruntime7contrib12transformers8Subgraph5SetupERKNS_12SessionStateES5_+0xc8d): more undefined references to `std::__throw_bad_array_new_length()' follow
          collect2: error: ld returned 1 exit status

  = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#rustc-link-lib)
decahedron1 commented 2 months ago

Make sure you have GCC >=10.5 installed.

86maid commented 2 months ago
root@XChuang233:/home/fuck/new_ddddocr/ddddocr# gcc --version
gcc (Ubuntu 11.4.0-2ubuntu1~20.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

After upgrading the GCC version, another error appeared during compilation.

error: linking with `cc` failed: exit status: 1
  = note: /usr/bin/ld: cannot find -lstdc++
          collect2: error: ld returned 1 exit status
86maid commented 2 months ago

The issue was resolved after I installed g++11.