jeudi 22 novembre 2018

Opencv with NEON provide a lot of undefined symbol

System information (version)

OpenCV => 3.2.0

Platform => ARM (armeabiv7-a)

Android API Level => 24

Compiler => Clang 5.0

Android STL => c++_static

NDK VERSION => NDK 15c

Goal of my request

Opti => NEON for Opencv (armeabiv7-a with NEON)

Introduction


I have a project which must need Opencv 3.2.0 and not another version. My project, will use many things with Opencv, in Window we can't see a latency, however in Android we can see them.

After reading a lot of articles/forums/channels about Opencv with Android, I've seen that Opencv needed NEON on Android, ARM to do something well and without latency and run with optimizations

Configure / Make Shared Lib


So, to date, I have downloaded sources of opencv 3.2.0 from the official website, I have run it into my CMAKE-GUI, I've made a lot of correction to make a build successful, but I would note that I haven't disable the essential modules from opencv like (core or any others).

Then after configure and make, I have my shared library which will be linked into my Android studio project with cmakelists and other things..

After sync correct, I have made my project.

Errors occurred with Android Studio compile the project


So, now i have encountered a lot of undefined symbols with opencv only.

We can see the outpout of these undefined here

Solution tried, but nothing happened


After seeing that, I have made a command nm -D mylib.so and I've seen that mylib. so show a lot of symbols with "U" prefix which says that is undefined and for example, cv::read() is undefined..

After 24 hours thinking, we have compiled it with GNUSTL_STATIC because we've seen in Stack Post that can make good happened but nothing for my project.

After 48 hours thinking, we met bad feeling because we needed this opencv with NEON, that why we're here.


If someone has an idea, I will be very grateful. Thanks advance for reading.

Great Regards.

Aucun commentaire:

Enregistrer un commentaire