Я кросс-скомпилировал Opencv (для ручного кросс-компилятора), а затем создал приложение opencv и скомпилировал его, используя gnueabihf g ++ compiler. Компиляция прошла успешно после установки правильных включений opencv и файлов lib. Теперь я скопировал это приложение и зависимые файлы lib в целевую систему и попытался запустить приложение, но оно не смогло жаловаться на отсутствие общих библиотек. Библиотеки копируются в обе папки / usr / lib и / lib, а команда ldconfig grep перечисляет мне необходимые библиотеки. Однако, когда я выполняю ldd моего приложения. для яйца ldd opencvapp - возвращает следующее
libopencv_core.so.4.2 => not found
libopencv_highgui.so.4.2 => not found
libopencv_imgproc.so.4.2 => not found
libopencv_imgcodecs.so.4.2 => not found
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb6e6a000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6df0000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6dc7000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6cd9000)
/lib/ld-linux-armhf.so.3 (0x7f5c0000)```
These libraries are present in /usr/lib as well as /lib.
giving the following command
**ldconfig -v | grep libopencv** returns
```ldconfig: Path `/lib/arm-linux-gnueabihf' given more than once
ldconfig: Path `/usr/lib/arm-linux-gnueabihf' given more than once
ldconfig: Path `/usr/lib' given more than once
ldconfig: /lib/arm-linux-gnueabihf/ld-2.24.so is the dynamic linker, ignoring
libopencv_core.so.4.2 -> libopencv_core.so.4.2.0 (changed)
libopencv_dnn.so.4.2 -> libopencv_dnn.so.4.2.0
libopencv_highgui.so.4.2 -> libopencv_highgui.so.4.2.0
libopencv_imgcodecs.so.4.2 -> libopencv_imgcodecs.so.4.2.0
libopencv_imgproc.so.4.2 -> libopencv_imgproc.so.4.2.0
libopencv_core.so.4.2 -> libopencv_core.so.4.2.0
libopencv_dnn.so.4.2 -> libopencv_dnn.so.4.2.0
libopencv_highgui.so.4.2 -> libopencv_highgui.so.4.2.0
libopencv_imgcodecs.so.4.2 -> libopencv_imgcodecs.so.4.2.0
libopencv_imgproc.so.4.2 -> libopencv_imgproc.so.4.2.0```
executing file on libopencv_core.so.4.2 gives
```ELF 32-bit LSB shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=e58d057c66950497a165a7ee27f87c01941c3724, not stripped ```
But however executing file on opencvapp returns
```ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=a3469006c710d3abe44b16250936162a1e28ee43, not stripped ```
Please notice that the difference between the application and the shared library is SYSV vs GNU/LINUX. Will that be the issue?