2025年11月25日火曜日

Qt 他のOSからのコードの取り込み

 Windowsで作成したコードをLinuxで使う手順:
最初、NewProject>プロジェクトのインポート>既存プロジェクトのインポート
だと思って操作した。しかし、コンパイラのバージョンが一致しないためかうまくいかない。
ChatGPTによるとコマンドラインだけでもできるようだ。
必要なものそろえるには
sudo apt update
sudo apt install qt6-base-dev qt6-base-dev-tools qt6-tools-dev qt6-tools-dev-tools
sudo apt install cmake build-essential ninja-build gdb
cd ~/qtkjog
rm -rf build
mkdir build
cd build
cmake ..
make -j4
これで、IDEに頼らず実行ファイルが動作した。

IDEの設定も、プロジェクト>ビルドと実行の中のDesktop Qt6.10.1というのができていたので、そこのビルド設定>一般マネージャを/home/user/qtkjog/buildと変更
また、実行時の設定>実行ファイルのところを/home/user/qtkjog/build/kjogとして、作業ディレクトリは空欄にしてみた。すると、立ち上げることができた。

ところが、これが、ビルドを消すとうまくいかなので、この方法は不完全なよう。configureがエラーでうまくいかない。

いろいろ、試行錯誤をしながらも、結局、正しくは、
・CMakeLists.txt を開く
・/home/user/qtkjog/build等の名称自動でつくので 必要なものにチェック入れる
・右下にconfigure projectのボタンが出てくるので、これをクリックでOk
・あとは、実行ボタンでOk
じつは、シンプルな操作でした。(ChatGPTはcmakeのconfigureがどっかにあるはずだと教えてくれるのだけど、新しいIDEにはそれは見つけられず、結局このconfigure projectのボタンがそれに該当するものだったらしい。configure>makeの手順はいつの時代になっても変わらないようだ。)

Windowsでは動作したのに、Ubuntuでは動作しないものもあった。C++の派生クラスの扱いがOSで微妙に違いがあるらしく、そのためらしい。こういうものは、なかなかバグを発見しずらく、気づくまで時間がかかったしまった。

 ようやく、ふだんよく使う自作アプリもLinux移行の準備が整ったので、あとは、いつでもメインOSをLinuxにできる体制になりました。(Windowsも11になってからハード要件あがってきたので、Linuxへの移行を準備中)

0 件のコメント:

コメントを投稿