This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: Building edgeai-tidl-tools CPP Examples

Part Number: TDA4VM

HI,

I have problems when building CPP examples on Target TDA4M

Using latest commit on

https://github.com/TexasInstruments/edgeai-tidl-tools/

Following guide on

https://github.com/TexasInstruments/edgeai-tidl-tools/blob/master/examples/osrt_cpp/README.md

First when building with make, it complains about not finding itidl_rt.h. Then I have added the tidl_tools path

export TIDL_TOOLS_PATH="/home/root/edgeai-tidl-tools/tidl_tools/"

Now I got the following error:

[ 77%] Linking CXX executable /home/root/edgeai-tidl-tools/bin/Release/ort_main
/usr/lib/gcc/aarch64-linux/9.2.1/../../../../aarch64-linux/bin/ld: CMakeFiles/ort_main.dir/onnx_main.cpp.o: in function `onnx::main::runInference(tidl::modelInfo::ModelInfo*, tidl::arg_parsing::Settings*)':
onnx_main.cpp:(.text+0x3db0): undefined reference to `OrtSessionsOptionsSetDefault_Tidl'

I kindly request your support to solve the issue

Below the complete log of cmake and make

Best

Gildardo


root@j7-evm:~/edgeai-tidl-tools# mkdir build && cd build
root@j7-evm:~/edgeai-tidl-tools/build# cmake ../examples/
-- The C compiler identification is GNU 9.2.1
-- The CXX compiler identification is GNU 9.2.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detected processor: aarch64
-- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai_tidl_examples
-- Detected processor: aarch64
-- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai_tidl_examples
-- Detected processor: aarch64
-- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai_tidl_examples
-- Detected processor: aarch64
-- CMAKE_BUILD_TYPE = Release PROJECT_NAME = tfl_main
-- Detected processor: aarch64
-- CMAKE_BUILD_TYPE = Release PROJECT_NAME = ort_main
-- Detected processor: aarch64
-- CMAKE_BUILD_TYPE = Release PROJECT_NAME = dlr_main
-- Detected processor: aarch64
-- CMAKE_BUILD_TYPE = Release PROJECT_NAME = tidlrt_clasification
-- Configuring done
-- Generating done
-- Build files have been written to: /home/root/edgeai-tidl-tools/build
root@j7-evm:~/edgeai-tidl-tools/build# make
make[1]: Entering directory '/home/root/edgeai-tidl-tools/build'
make[2]: Entering directory '/home/root/edgeai-tidl-tools/build'
Scanning dependencies of target post_process
make[2]: Leaving directory '/home/root/edgeai-tidl-tools/build'
make[2]: Entering directory '/home/root/edgeai-tidl-tools/build'
[  5%] Building CXX object osrt_cpp/post_process/CMakeFiles/post_process.dir/post_process.cpp.o
[ 11%] Linking CXX static library /home/root/edgeai-tidl-tools/lib/Release/libpost_process.a
make[2]: Leaving directory '/home/root/edgeai-tidl-tools/build'
[ 11%] Built target post_process
make[2]: Entering directory '/home/root/edgeai-tidl-tools/build'
Scanning dependencies of target pre_process
make[2]: Leaving directory '/home/root/edgeai-tidl-tools/build'
make[2]: Entering directory '/home/root/edgeai-tidl-tools/build'
[ 16%] Building CXX object osrt_cpp/pre_process/CMakeFiles/pre_process.dir/pre_process.cpp.o
[ 22%] Linking CXX static library /home/root/edgeai-tidl-tools/lib/Release/libpre_process.a
make[2]: Leaving directory '/home/root/edgeai-tidl-tools/build'
[ 22%] Built target pre_process
make[2]: Entering directory '/home/root/edgeai-tidl-tools/build'
Scanning dependencies of target utils
make[2]: Leaving directory '/home/root/edgeai-tidl-tools/build'
make[2]: Entering directory '/home/root/edgeai-tidl-tools/build'
[ 27%] Building CXX object osrt_cpp/utils/CMakeFiles/utils.dir/src/utility_functs.cpp.o
[ 33%] Building CXX object osrt_cpp/utils/CMakeFiles/utils.dir/src/model_info.cpp.o
[ 38%] Building CXX object osrt_cpp/utils/CMakeFiles/utils.dir/src/edgeai_classnames.cpp.o
[ 44%] Building CXX object osrt_cpp/utils/CMakeFiles/utils.dir/src/ti_logger.cpp.o
[ 50%] Building CXX object osrt_cpp/utils/CMakeFiles/utils.dir/src/arg_parsing.cpp.o
[ 55%] Linking CXX static library /home/root/edgeai-tidl-tools/lib/Release/libutils.a
make[2]: Leaving directory '/home/root/edgeai-tidl-tools/build'
[ 55%] Built target utils
make[2]: Entering directory '/home/root/edgeai-tidl-tools/build'
Scanning dependencies of target tfl_main
make[2]: Leaving directory '/home/root/edgeai-tidl-tools/build'
make[2]: Entering directory '/home/root/edgeai-tidl-tools/build'
[ 61%] Building CXX object osrt_cpp/tfl/CMakeFiles/tfl_main.dir/tfl_main.cpp.o
/home/root/edgeai-tidl-tools/examples/osrt_cpp/tfl/tfl_main.cpp: In function 'int tflite::main::runInference(tidl::modelInfo::ModelInfo*, tidl::arg_parsing::Settings*)':
/home/root/edgeai-tidl-tools/examples/osrt_cpp/tfl/tfl_main.cpp:254:25: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
  254 |         char *keys[] = {"artifacts_folder", "num_tidl_subgraphs", "debug_level"};
      |                         ^~~~~~~~~~~~~~~~~~
/home/root/edgeai-tidl-tools/examples/osrt_cpp/tfl/tfl_main.cpp:254:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
  254 |         char *keys[] = {"artifacts_folder", "num_tidl_subgraphs", "debug_level"};
      |                                             ^~~~~~~~~~~~~~~~~~~~
/home/root/edgeai-tidl-tools/examples/osrt_cpp/tfl/tfl_main.cpp:254:67: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
  254 |         char *keys[] = {"artifacts_folder", "num_tidl_subgraphs", "debug_level"};
      |                                                                   ^~~~~~~~~~~~~
/home/root/edgeai-tidl-tools/examples/osrt_cpp/tfl/tfl_main.cpp:255:81: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
  255 |         char *values[] = {(char *)modelInfo->m_infConfig.artifactsPath.c_str(), "16", "0"};
      |                                                                                 ^~~~
/home/root/edgeai-tidl-tools/examples/osrt_cpp/tfl/tfl_main.cpp:255:87: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
  255 |         char *values[] = {(char *)modelInfo->m_infConfig.artifactsPath.c_str(), "16", "0"};
      |                                                                                       ^~~
[ 66%] Linking CXX executable /home/root/edgeai-tidl-tools/bin/Release/tfl_main
make[2]: Leaving directory '/home/root/edgeai-tidl-tools/build'
[ 66%] Built target tfl_main
make[2]: Entering directory '/home/root/edgeai-tidl-tools/build'
Scanning dependencies of target ort_main
make[2]: Leaving directory '/home/root/edgeai-tidl-tools/build'
make[2]: Entering directory '/home/root/edgeai-tidl-tools/build'
[ 72%] Building CXX object osrt_cpp/ort/CMakeFiles/ort_main.dir/onnx_main.cpp.o
[ 77%] Linking CXX executable /home/root/edgeai-tidl-tools/bin/Release/ort_main
/usr/lib/gcc/aarch64-linux/9.2.1/../../../../aarch64-linux/bin/ld: CMakeFiles/ort_main.dir/onnx_main.cpp.o: in function `onnx::main::runInference(tidl::modelInfo::ModelInfo*, tidl::arg_parsing::Settings*)':
onnx_main.cpp:(.text+0x3db0): undefined reference to `OrtSessionsOptionsSetDefault_Tidl'
collect2: error: ld returned 1 exit status
make[2]: *** [osrt_cpp/ort/CMakeFiles/ort_main.dir/build.make:87: /home/root/edgeai-tidl-tools/bin/Release/ort_main] Error 1
make[2]: Leaving directory '/home/root/edgeai-tidl-tools/build'
make[1]: *** [CMakeFiles/Makefile2:332: osrt_cpp/ort/CMakeFiles/ort_main.dir/all] Error 2
make[1]: Leaving directory '/home/root/edgeai-tidl-tools/build'
make: *** [Makefile:130: all] Error 2
root@j7-evm:~/edgeai-tidl-tools/build#