libmodbus ライブラリをコンパイルしてインストールする

libmodbus ライブラリのソース コードをダウンロードする

git clone git://github.com/stephane/libmodbus

エラーが報告された場合: 致命的: github.com (ポート 9418) を検索できません

エラーは次のとおりです

fatal: Unable to look up github.com (port 9418) (未知的名称或服务)

次のコマンドを使用してキャッシュをクリアします

npm cache clean --force

ここに画像の説明を挿入
ここに画像の説明を挿入
キャッシュをクリアした後、ダウンロードし、新しいフォルダー modbus を作成してダウンロードできます。
ここに画像の説明を挿入

若报错:ポート 9418 の非認証 git プロトコルはサポートされなくなりました。

エラーは次のように報告されます
ここに画像の説明を挿入
(考えられる) 解決策は次のとおりです。

  • プロジェクトのクローンに問題がある場合は、代わりに https プロトコルまたは ssh を使用してください
  • npmのインストールに問題があります

ここでの解決策は、git を https に変更することです。

sudo git clone https://github.com/stephane/libmodbus

ここに画像の説明を挿入

インストール

ダウンロード後、現在のディレクトリに libmodbus フォルダーが作成されます。

cd libmodbus

libtool ツールもインストールする必要があります

sudo apt-get install libtool

ここに画像の説明を挿入
次に、autogen.sh ファイルを実行します。

sudo ./autogen.sh

エラーの
ここに画像の説明を挿入
理由: automake ツールがインストールされていません。次のコマンドを実行してインストールします。

sudo apt install autoconf automake libtool

ここに画像の説明を挿入
autogen.sh ファイルを再度実行します。
ここに画像の説明を挿入

構成

次に、構成し、libmodbus フォルダーに新しいインストール フォルダーを作成し、コンパイルおよび生成された関連ファイルを保存します。

sudo mkdir install

設定を実行する

./configure --prefix=/home/xxx123/modbus/libmodbus/install
///home/xxx123/modbus/libmodbus/install为安装路径

ここに画像の説明を挿入

コンパイル

make&&make installコマンドを実行します。

make&&make install
或
make
make install

エラーを報告する

ここに画像の説明を挿入
いろいろ調べても解決策が見つからず、直感的に前のコマンドの実行を探したところ、次のコマンドを実行するときに sudo が追加されていないことがわかりました。

./configure --prefix=/home/xxx123/modbus/libmodbus/install

その結果、最後に一部の作業が完了しませんでしたが、
ここに画像の説明を挿入
sudo を再度追加して実行すると、実行結果は次の図のようになっていることがわかります。
ここに画像の説明を挿入

次に、make&&make install コマンドを実行してコンパイル プロセスを完了します。

また
ここに画像の説明を挿入
、 sudo を追加しますが、 sudo を追加しても最後にエラーが報告されます。
ここに画像の説明を挿入
明らかに、これは sudo が make コマンドにのみ影響するためです。解決策は、コマンドを個別に実行するか、echo を実行することです。 Wildfire のような情報を出力するシリアル ポートをブロックするコマンド (Wildfire Linux チュートリアルを参照) コマンド全体に引用符を追加します (私自身は試していません)。実行に成功すると、次のようになります。 コンパイルが成功した後、インストール フォルダーにあります
ここに画像の説明を挿入
。作成されると、インクルード ヘッダー ファイルと lib ライブラリ ファイルが出力され、
ここに画像の説明を挿入
lib 配下の 3 つのダイナミック ライブラリが出力されます。 libmodbus.so.xx、プロジェクト環境の /usr/lib ディレクトリ

sudo cp -r ./install/lib/libmodbus.so* /usr/lib

ここに画像の説明を挿入

エラーが発生した場合: -bash: make: コマンドが見つかりません

ここに画像の説明を挿入
理由分析: 一般に、このプロンプト -bash: make: command not found が表示されます。これは、システムのインストール時に最小限のミニインストールが使用され、システムには make や vim などの一般的なコマンドがインストールされていないためです。sudo で直接インストールするだけです。 apt-get インストール 。解決

sudo apt-get update(非必须)
sudo apt-get install  gcc automake autoconf libtool make

ここに画像の説明を挿入
次に、sudo make コマンドを実行できます。

sudo make コマンドの後にエラーが報告された場合: /bin/bash: .../libtool: そのようなファイルまたはディレクトリはありません

ここに画像の説明を挿入
解決策、再実行

sudo apt install autoconf automake libtool
sudo ./autogen.sh

次の画像が表示されたら
ここに画像の説明を挿入
、sudo make を実行する必要があります。

コンパイル完了後にインクルードヘッダーファイルとlibライブラリファイルがインストールフォルダーに見つからない場合

システムを再起動するか、再度システムにログインしてください。ここでは、Wildfire imx6ull 開発ボードに再度ログインします。再度ログインすると、すでに
ここに画像の説明を挿入

使用

/modbus/libmodbus/install/include/ フォルダー内のヘッダー ファイルを /modbus/ フォルダー (アプリケーションと同じディレクトリ) にコピーします。

//进入到/modbus/目录下执行
sudo cp ./libmodbus/install/include/modbus/modbus* ./

ここに画像の説明を挿入
プロジェクトの makefile -L./lib -lmodbus 関数を呼び出す .h ファイルを c ファイルに導入します。

gcc -o xxx xxx.c -L. -lmodbus
如:sudo gcc -o tcpslave tcpslave.c -L. -lmodbus

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/soinlove36/article/details/125834220