Я пытаюсь создать общую библиотеку для использования на малине pi (модель 3B) с использованием lazarus. После некоторого озадачивания я узнал, что моя оригинальная библиотека не работает должным образом, поэтому я переключился на очень простую библиотеку, используя пример this.Создайте общую библиотеку на малине, используя Lazarus
Но даже эта простая библиотека неправильно компилируется для использования. Когда я пытаюсь открыть библиотеку в другом Лазаря проекте он дает мне ошибку:
<libName>: cannot open shared object file: No such file or directory
После некоторых исследований я обнаружил следующую диагностику я мог бежать. Командный файл и LDD в библиотеке компиляции:
$ Файл ./libname.so дает:
./libname.so: ELF 32-bit LSB shared object, ARM, EABI5 verion 1 (SYSV), dynamically linked, not stripped
$ LDD ./libname.so
not a dynamic executable
Я искал для подобных случаев и выяснилось, что у других была эта проблема, когда они пытались использовать библиотеки для компиляции для другой платформы/архитектуры. Я уже установил проект> параметры проекта> параметры компилятора> целевую платформу для ОС: = linux и Target CPU family: arm.
Система Я использую (используя $ uname -a):
Linux raspberrypi 4.4.13-V7+ #894 SMP Mon Jun 13 13:13:27 BST 2016 armv7l GNU/Linux
с дистрибутивом: Raspbian GNU/Linux 8.0 (Jessie)
Lazarus Версия: 1.2.4 + dfsg2-1 Версия FPC: 2.6.4 arm-linux-gtk2
На данный момент я не уверен, что не так, и почему эта библиотека не работает. Я могу найти очень мало информации об этой проблеме (на платформе aspberry и использовании lazarus) Любые предложения, что я мог бы попытаться заставить ее работать, скомпилировать ее или сделать еще несколько диагностических программ?
И если вы делаете LD_LIBRARY_PATH =., Что тогда происходит? Или попробуйте импортировать блок «initc» в вашу библиотеку. –
Пробовал оба, действительно, initc решил его, но привел к другой проблеме. Однако нашел решение, которое я опубликую. Спасибо, в любом случае! – Steven