Q:アプリケーションを起動するとシェアードライブラリがないとのエラーが出るのですが。
A:
インストールが正常にできていない可能性があります。インストールはroot権限で行って ください。
シェアードライブラリは、/usr/local/libにコピーしただけでは、動作しません。
シェアードライブラリを有効にするには、ファイルをコピーしてシンボリックリンクを作成 した後に、ldconfigコマンドを実行してください。
詳細は、daq-libmb-lnx/libmodbus/MakeFileを見てください。
※事前にautogen.shを実行ください
Q:シェアードライブラリを任意のディレクトリにおいて管理したいのですが。
A:
シェアードライブラリを任意のディレクトリで管理するには、以下2つの手順が必要です。
1.以下のように、configureスクリプトで prefix=「任意のディレクトリ(/usr/lib等)」と指定した後、make 、 make installを実施してください。
本操作で、シェアードライブラリが任意のディレクトリにコピーされます。
# ./autogen.sh
................
# ./configure prefix=任意のディレクトリ
................
# make
................
# make install
2./etc/ld.so.confを書き換えてldconfigを実行するか、シェルの起動スクリプト等でLD_LIBRARY_PATH の設定を追加してください(例はbash)。
記述内容は、使用するシェルによって異なります。詳しくは、manコマンドで調べてください。
本操作で、任意のディレクトリにあるライブラリがシェアードライブラリとしてロードされます。
(例).bash_profile
LD_LIBRARY_PATH=任意のディレクトリ
export LD_LIBRARY_PATH
Q:ライブラリのmakeに失敗します。
A-1:
ドライバ仕様 にて、対応アーキテクチャやディストリビューションであることを確認してください。
A-2:
Raspberry Pi OS May 2023以降の32bitをRaspberry Pi 4 Model Bへインストールすると、OSデフォルト設定では64bitモードとなります。
このため、make時にエラーが発生したり、デバイスドライバによってはmake時にエラーが発生しなくても、デバイスドライバが正常に動作しないことがあります。
弊社での動作確認は32bitモードで行っております。
32bitモードで動作するには、「/boot/firmware/config.txt」(*1)に「arm_64bit=0」を追加します。その後、OS再起動を再起動してください。
*1:環境によって「/boot/config.txt」になります
詳細は、https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit を参照ください。