Linuxライブラリ共通FAQ


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 を参照ください。