Linux で 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