Hi,
I'm trying to compile/linkage the latest (master branch) voxl-tflite-server code on VOXL2.I'm working with SDK 0.9 .
But during my linkage of the project, i run into the following problems:
Invoking: GCC C++ Linker
g++ -L/usr/lib64 -Wl,-rpath-link,/usr/lib64/ -o "powtflite" ./inference_helper.o ./main.o ./resize.o -ltensorflow-lite -labsl_bad_any_cast_impl -labsl_bad_optional_access -labsl_bad_variant_access -labsl_base -labsl_city -labsl_civil_time -labsl_cord -labsl_debugging_internal -labsl_demangle_internal -labsl_exponential_biased -labsl_flags -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_private_handle_accessor -labsl_flags_program_name -labsl_flags_reflection -labsl_graphcycles_internal -labsl_hash -labsl_hashtablez_sampler -labsl_int128 -labsl_log_severity -labsl_malloc_internal -labsl_raw_hash_set -labsl_raw_logging_internal -labsl_spinlock_wait -labsl_stacktrace -labsl_status -labsl_str_format_internal -labsl_strings -labsl_strings_internal -labsl_symbolize -labsl_synchronization -labsl_throw_delegate -labsl_time -labsl_time_zone -labsl_wyhash -labsl_bad_any_cast_impl -labsl_bad_optional_access -labsl_bad_variant_access -labsl_base -labsl_city -labsl_civil_time -labsl_cord -labsl_debugging_internal -labsl_demangle_internal -labsl_exponential_biased -labsl_flags -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_private_handle_accessor -labsl_flags_program_name -labsl_flags_reflection -labsl_graphcycles_internal -labsl_hash -labsl_hashtablez_sampler -labsl_int128 -labsl_log_severity -labsl_malloc_internal -labsl_raw_hash_set -labsl_raw_logging_internal -labsl_spinlock_wait -labsl_stacktrace -labsl_status -labsl_str_format_internal -labsl_strings -labsl_strings_internal -labsl_symbolize -labsl_synchronization -labsl_throw_delegate -labsl_time -labsl_time_zone -labsl_wyhash -labsl_bad_any_cast_impl -labsl_bad_optional_access -labsl_bad_variant_access -labsl_base -labsl_city -labsl_civil_time -labsl_cord -labsl_debugging_internal -labsl_demangle_internal -labsl_exponential_biased -labsl_flags -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_private_handle_accessor -labsl_flags_program_name -labsl_flags_reflection -labsl_graphcycles_internal -labsl_hash -labsl_hashtablez_sampler -labsl_int128 -labsl_log_severity -labsl_malloc_internal -labsl_raw_hash_set -labsl_raw_logging_internal -labsl_spinlock_wait -labsl_stacktrace -labsl_status -labsl_str_format_internal -labsl_strings -labsl_strings_internal -labsl_symbolize -labsl_synchronization -labsl_throw_delegate -labsl_time -labsl_time_zone -labsl_wyhash -lflatbuffers -lcpuinfo -lfarmhash -lclog -lfft2d_fftsg2d -lfft2d_fftsg -lruy_allocator -lruy_apply_multiplier -lruy_block_map -lruy_blocking_counter -lruy_context -lruy_context_get_ctx -lruy_cpuinfo -lruy_ctx -lruy_denormal -lruy_frontend -lruy_have_built_path_for_avx -lruy_have_built_path_for_avx2_fma -lruy_have_built_path_for_avx512 -lruy_kernel_arm -lruy_kernel_avx -lruy_kernel_avx2_fma -lruy_kernel_avx512 -lruy_pack_arm -lruy_pack_avx -lruy_pack_avx2_fma -lruy_pack_avx512 -lruy_prepacked_cache -lruy_prepare_packed_matrices -lruy_profiler_instrumentation -lruy_system_aligned_alloc -lruy_thread_pool -lruy_trmul -lruy_tune -lruy_wait -lglib-2.0 -ldl -lstdc++ -lpthread -lz -lcutils -llog -lsync -lgthread-2.0 -lpcre -lmodal_pipe -lmodal_json -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lgsl -lllvm-qcom -ladreno_utils -lOpenCL -lCB -lEGL_adreno -lGLESv2_adreno -lrt -lXNNPACK -lpthreadpool
/usr/lib64/libtensorflow-lite.a(nnapi_delegate.cc.o): In function `tflite::delegate::nnapi::NNMemory::NNMemory(NnApi const*, char const*, unsigned long)':
nnapi_delegate.cc:(.text+0xd58): warning: the use of `tmpnam' is dangerous, better use `mkstemp'
makefile:56: recipe for target 'powtflite' failed
/usr/lib64/libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::~CpuInfo()':
cpuinfo.cc:(.text+0x10): undefined reference to `cpuinfo_deinitialize'
/usr/lib64/libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::Initialize()':
cpuinfo.cc:(.text+0x44): undefined reference to `cpuinfo_initialize'
cpuinfo.cc:(.text+0x58): undefined reference to `cpuinfo_get_processors_count'
cpuinfo.cc:(.text+0x8c): undefined reference to `cpuinfo_get_processor'
cpuinfo.cc:(.text+0xb8): undefined reference to `cpuinfo_get_processor'
cpuinfo.cc:(.text+0xcc): undefined reference to `cpuinfo_get_processor'
/usr/lib64/libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::NeonDotprod()':
cpuinfo.cc:(.text+0x21c): undefined reference to `cpuinfo_isa'
cpuinfo.cc:(.text+0x220): undefined reference to `cpuinfo_isa'
/usr/lib64/libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::CurrentCpuIsA55ish()':
cpuinfo.cc:(.text+0x2c0): undefined reference to `cpuinfo_get_current_uarch_index'
cpuinfo.cc:(.text+0x2c4): undefined reference to `cpuinfo_get_uarch'
/usr/lib64/libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::CurrentCpuIsX1()':
cpuinfo.cc:(.text+0x304): undefined reference to `cpuinfo_get_current_uarch_index'
cpuinfo.cc:(.text+0x308): undefined reference to `cpuinfo_get_uarch'
/usr/lib64/libruy_thread_pool.a(thread_pool.cc.o): In function `ruy::ThreadPool::CreateThreads(int)':
thread_pool.cc:(.text+0x1b4): undefined reference to `ruy::BlockingCounter::Reset(int)'
thread_pool.cc:(.text+0x308): undefined reference to `ruy::BlockingCounter::Wait(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)'
/usr/lib64/libruy_thread_pool.a(thread_pool.cc.o): In function `ruy::ThreadPool::ExecuteImpl(int, int, ruy::Task*)':
thread_pool.cc:(.text+0x3dc): undefined reference to `ruy::BlockingCounter::Reset(int)'
thread_pool.cc:(.text+0x494): undefined reference to `ruy::BlockingCounter::Wait(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)'
/usr/lib64/libruy_thread_pool.a(thread_pool.cc.o): In function `ruy::Thread::ThreadFunc(ruy::Thread*)':
thread_pool.cc:(.text._ZN3ruy6Thread10ThreadFuncEPS0_[_ZN3ruy6Thread10ThreadFuncEPS0_]+0xb4): undefined reference to `ruy::BlockingCounter::DecrementCount()'
thread_pool.cc:(.text._ZN3ruy6Thread10ThreadFuncEPS0_[_ZN3ruy6Thread10ThreadFuncEPS0_]+0x1ac): undefined reference to `ruy::BlockingCounter::DecrementCount()'
/usr/lib64/libruy_trmul.a(trmul.cc.o): In function `ruy::(anonymous namespace)::TrMulTask::Run()':
trmul.cc:(.text+0xdc): undefined reference to `ruy::GetBlockByIndex(ruy::BlockMap const&, int, ruy::SidePair<int>*)'
trmul.cc:(.text+0xf0): undefined reference to `ruy::GetBlockMatrixCoords(ruy::BlockMap const&, ruy::SidePair<int> const&, ruy::SidePair<int>*, ruy::SidePair<int>*)'
trmul.cc:(.text+0x21c): undefined reference to `ruy::GetBlockMatrixCoords(ruy::Side, ruy::BlockMap const&, int, int*, int*)'
/usr/lib64/libruy_trmul.a(trmul.cc.o): In function `ruy::TrMul(ruy::Ctx*, ruy::TrMulParams*)':
trmul.cc:(.text+0x5a4): undefined reference to `ruy::MakeBlockMap(int, int, int, int, int, int, int, int, ruy::CpuCacheParams const&, ruy::BlockMap*)'
trmul.cc:(.text+0x768): undefined reference to `ruy::IsObviouslyLinearTraversal(int, int, int, int, int, ruy::CpuCacheParams const&)'
/usr/lib64/libXNNPACK.a(init.c.o): In function `init':
init.c:(.text+0x2c): undefined reference to `cpuinfo_isa'
init.c:(.text+0x4c): undefined reference to `cpuinfo_isa'
init.c:(.text+0x6c): undefined reference to `cpuinfo_get_core'
init.c:(.text+0x1a8): undefined reference to `cpuinfo_get_core'
init.c:(.text+0x3d4): undefined reference to `cpuinfo_get_uarch'
init.c:(.text+0x44c): undefined reference to `cpuinfo_isa'
init.c:(.text+0x468): undefined reference to `cpuinfo_get_core'
init.c:(.text+0x580): undefined reference to `cpuinfo_isa'
init.c:(.text+0x6a0): undefined reference to `cpuinfo_get_core'
init.c:(.text+0x8e0): undefined reference to `cpuinfo_get_uarch'
init.c:(.text+0xa04): undefined reference to `cpuinfo_isa'
init.c:(.text+0xa14): undefined reference to `cpuinfo_get_core'
init.c:(.text+0xaec): undefined reference to `cpuinfo_get_uarch'
init.c:(.text+0xc94): undefined reference to `cpuinfo_isa'
init.c:(.text+0xcd8): undefined reference to `cpuinfo_get_core'
init.c:(.text+0xdcc): undefined reference to `cpuinfo_isa'
init.c:(.text+0xe40): undefined reference to `cpuinfo_get_core'
init.c:(.text+0x10ac): undefined reference to `cpuinfo_isa'
init.c:(.text+0x1148): undefined reference to `cpuinfo_get_uarch'
init.c:(.text+0x131c): undefined reference to `cpuinfo_get_core'
init.c:(.text+0x17cc): undefined reference to `cpuinfo_get_uarch'
init.c:(.text+0x18a4): undefined reference to `cpuinfo_get_core'
/usr/lib64/libXNNPACK.a(init.c.o): In function `xnn_initialize':
init.c:(.text+0x1fdc): undefined reference to `cpuinfo_initialize'
/usr/lib64/libXNNPACK.a(init.c.o): In function `xnn_deinitialize':
init.c:(.text+0x2044): undefined reference to `cpuinfo_deinitialize'
collect2: error: ld returned 1 exit status
Seems like the libcpuinfo.a doesn't include some functions. How it's possible? Thanks for any help.