kitamura-a
2023年6月16日 17時03分
Armadillo-IoT G4で動作させるアプリを作成しております。
ATDE9上に[Qt5.15.2]をインストールし、アプリ作成 → ビルドしたところエラーが発生する為、この問題を解決したいです。
---------------------------------------------------------------------------------------------------------
詳細
・Virtual Box(ATDE9)上で実行ファイル、ライブラリを作成しターミナルからビルドをを行うと、
"./MAINTask: error while loading shared libraries: libMsgProc.so:
cannot open shared object file: No such file or directory" という作成したライブラリを参照できないといったエラーが発生します。
この時、コンパイラは[x86 64bit]になってしまいます。
Virtual Box(ATDE9)上のQtCreator上でビルドを行うと、エラーは出ません。コンパイラは[arm 64bit]となります。
但し実機(Armadillo-IoT G4)に転送すると、上記と同じエラーメッセージが出力されます。
上記エラーの解決と、ターミナル上でビルドをおこなった際に[arm 64bit]を使用する為の問題解決を行いたいです。
考えられる原因を教えてください。
at_ohsawa
2023年6月16日 18時08分
> ・Virtual Box(ATDE9)上で実行ファイル、ライブラリを作成しターミナルからビルドをを行うと、
> "./MAINTask: error while loading shared libraries: libMsgProc.so:
どういうプログラムをビルドしているでしょうか。
例えば、Qt公式のexampleをビルドしたときに、この問題は起きますか?
https://doc.qt.io/qt-5/qtexamplesandtutorials.html
libMsgProc.soはATDEにも含まれていませんし、Debianからも供給されていないので
おそらくビルドされているアプリや、ご自身でつかっているライブラリか何かだと
思います。
また、QtCreatorでビルドできているにも関わらず、qmakeで失敗するか、実行時に
失敗するのであれば
QrCreatorが自動補完している環境変数やオプション等をビルド時にqmakeに渡して
いないか、あるいはQtCreatorが実行時にセットしている環境変数とコンソールでの
実行に差異があるのではないかと推測します。
QtCreatorの仕様には詳しくないのですが、buildの詳細からEffective qmakr call
としてして暗黙に渡している引数がみられそうです。(これが完全に全ての引数
なのかはわかりませんが…)
また、実行時の環境変数も、プロジェクト->RunのEnvironmentにかなりの数の
環境変数が設定された上で実行するようです。コンソールでの作業と合わせている
でしょうか。
なお、ATDEとArmadilloとしてはQtに対して特に何もしておらず、この場合
ATDEただのDebian 11です。この状況はQt一般の問題だと思います。
Qtのリファレンスで同様の問題に当たったものはないでしょうか?
また、Armadillo-IoT G4の推奨のGUIフレームワークはFlutterなのですが、
そちらを使わない理由はありますか?新規開発であればGPUドライバの対応で
あったりタッチパネルドライバの挙動、ビルド、動作確認も済んでいる
Flutterでの開発をおすすめしています。