Intel® Distribution of OpenVINO™ Toolkit
Community assistance about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all aspects of computer vision-related on Intel® platforms.

ie_api.so library not compiled

OKI__HIdetaka
New Contributor I
880 Views

Hi,  I built dldt from github source tree. I can not find ie_api.so in dldt/inference-engine/bin/{arch}/Release/ or dldt/inference-engine/build/ .

When installing OpenVINO SDK with the binary package downloaded from Intel site, it is located in /opt/intel/openvino/python/python?.?/{arch}/openvino/inference_engine/ .

Do I need to execute "cmake ; make" in the indivisual directory , not only at the top level - dldt/inference-engine/build/ ?

Regards,

 

0 Kudos
4 Replies
OKI__HIdetaka
New Contributor I
880 Views

Hi, I found the guide in dldt/inference-engine/ie_bridges/python/README.md and successfully built ie_api.so for x86-64 arch.

Somehow an infinite nesting problem occurs in pyconfig.h of python3.5m during cross compilation for another arch.  This might have nothing to do with dldt source, so I will check my cross compilation environment..

Best Regards,

0 Kudos
Kenneth_C_Intel
Employee
880 Views

Yes, I think it may have been an issue in your environment. 

I found ie_api.so in dldt/inference-engine/bin/intel64/Release/lib/python_api/python3.6/openvino/inference_engine.

If you find an issue that the cmake script fails in please let us know so we can address it. 

0 Kudos
OKI__HIdetaka
New Contributor I
880 Views

Hi, thank you for reply.

I fixed /usr/include/aarch64-linux-gnu/python3.5m/ link in my environment and built ie_api.so in dldt/inference-engine/bin/arm64/Release/lib/python_api/python3.5/openvino/inference_engine/ successfully.

My target plarform is arm 64 ubutu box and I use Xeon ubuntu server for cross compilation due to memory and file system limitation on the box. Compiling x86-64 binary is just for reference to check cmake and make behavior.

I am now strugling another problem to build opencv. Executing "cmake ; make" finishes normally and libopencv*.so libraries and opencv* commands are built,  but cv2.cpython-35m-aarch64-linux-gnu.so is not built. I can build cv2.python-35m-x86_64-linux-gnu.so to run self compilation with the same cmake arguments on the same server. OpenVINO SDK binary package.includes cv2.cpython-{ver}-{arch}.so , so I suppose it would be required

Regards,

0 Kudos
OKI__HIdetaka
New Contributor I
880 Views

Hi,

I have built cv2.python-35m-{arch}-linux-gnu.so on cross compiling environment with some addtional "Define"s of python directories and pkg-config directory in cmake arguments to follow information messages from cmake. The generated .so file name is cv2.cpython-x86_64-linux-gnu.so but it is "ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, not stripped".

This name is declared in sevral scripts in opencv/build/modules/python3/  which are generated by cmake. It seems that the arch infix is named for HOST_SYSTEM_PROCESSOR, not for target SYSTEM_PROCESSOR. I can not figure out how to modify infix naming in cmake scripts or so, but it should not be big deal since it could just be renamed when deploying.

Best Regards,

0 Kudos
Reply