私はlazarusを使ってラズベリーpi(モデル3B)で使う共有ライブラリを構築しようとしています。私の元のライブラリが正しく動作しなかったことが分かりましたので、私はthisの例を使って非常に単純なライブラリに切り替えました。ラザロを使ってラズベリーに共有ライブラリを構築する
しかし、この単純なライブラリでも、適切にコンパイルされずに使用されます。私は別のラザロプロジェクトにライブラリを開こうとすると、それは私にエラーを与える:
<libName>: cannot open shared object file: No such file or directory
いくつかの研究の後、私は私が実行できる以下の診断を発見しました。コンパイルライブラリ内のファイルやlddコマンド:私は似たようなケースで検索しました
not a dynamic executable
./libname.so
./libname.so: ELF 32-bit LSB shared object, ARM, EABI5 verion 1 (SYSV), dynamically linked, not stripped
$のLDDを:与え./libname.so
$ファイル異なるプラットフォーム/アーキテクチャ用にコンパイルしたライブラリを使用しようとしたときに他の人がこの問題を抱えていることがわかりました。私はすでにプロジェクト>プロジェクトオプション>コンパイラオプション>ターゲットプラットフォームをOS:= linuxとTarget CPUファミリ: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(ジェシー)
ラザロのバージョン:1.2.4 + dfsg2-1 FPCのバージョン:2.6.4 arm-linux-gtk2
この時点で私は何が間違っているのか、なぜこのライブラリが動作していないのかよくわかりません。私はこの問題(aspberryプラットフォームとlazarusを使用して)にはほとんど情報を見つけることができません私はそれを動作させるために何を試すことができるか、別のコンパイルをコンパイルするか、
LD_LIBRARY_PATH =。を実行すると、何が起こりますか?または、ユニット "initc"をライブラリにインポートしようとします。 –
どちらも試しましたが、initcはそれを解決しましたが、別の問題が生じました。しかし、私が投稿する解決策が見つかりました。とにかくありがとう! – Steven