ユーザ用ツール

サイト用ツール


2024:03:03

文書の過去の版を表示しています。


3/3日記

プログラミング(思考順)

  • Rustのコンパイル環境を準備していた。
  • だが、いくつか問題が発生していた。
  • WSL環境でGUIを動かすと欠落やエラーが発生する。そのため、WSLを開発環境として使えても、動作環境としては使えない可能性が高い。
  • そこで、Windowsをメインターゲットにしてコンパイルすべく環境を整えた。
  • ただLinuxに慣れた身でコマンドライン使い続けるのは正直つらいと思った。
  • よって、MSYSをインストールしてあるのでその環境でもRustを導入した。
  • こうしてWSL・Windows・MSYSでのコンパイルが可能になった。重複しすぎとか言わない。わかってるしw
  • ついでにGoも同じようにしておいた。
  • これでGoアプリとRustアプリは比較的楽に開発できそう。
  • あとはヘッダについて、ユニバーサル用のランタイムライブラリを使いたかったけど、一部コンパイラがまだ対応してないので諦め。
  • なんで対応したいのかについては以下。
  • そしてテキストエディタをWindowsのターミナルに組み込もうとしたらMSVCだとコンパイルが面倒。もうやだVSCodeつかう!マキャチカおうち帰る!
  • メインの開発はWSLかMSYS2上で行って、最終的なコンパイルだけWindows上で行うことを検討かな。(MSYS経由でGCC使う段階でWindows上で使う分には問題ないはず)
  • 上で問題だったmicroはMSYS上でビルドした。Goアプリなので、MinGWを使ったGoのコンパイラを利用してるみたい。
  • ついでにこのアプリをWindowsのターミナルからも使えるようにしておいた。これでWin側でテキスト処理したい場合もすぐ取りかかれる。

  • 今度はRustでGUIアプリを作る準備。
  • 色々お試しして、まずicedというライブラリを使ってた。
  • これはすぐ作れたので楽だった。まず簡単にGUI作るのであればこれでもいいかもしれない。
  • 即時描画のUIライブラリに類するので、簡単に動かせて楽。

  • 次にTauriというライブラリを使ってみた。Electronみたいな位置づけのアプリになるっぽい。
  • 基本的にはマニュアル見ながら進める。
  • MSYS2環境でTauriを準備してたがうまく準備できなかったので、「cargo install tauri-cli –locked」で一応事なきを得た。
  • 「Cargo.lock が最新である必要があります」だそう。つまりインストールできるバージョンはCargo.lockを参照するってことかな。
  • 理想的な順番は以下の通り。
  1. cargo install tauri-cli –locked
  2. cargo install create-tauri-app –locked
  3. cargo create-tauri-app(プロジェクト作成)
  • 1.と2.は順不同でもいいけど、3.でどっちも使うことになる。
  • どうもCargoを改造(機能追加)してビルドできるようにするみたいなので、ビルドも時間がかかった。

  • 試しに自動で構築されるサンプルプログラムをビルドしてみる。
  • 開発版は「cargo tauri dev」で問題なく動く。
  • 「cargo tauri build」を入力してリリース版を出力しようとすると、release版でエラーが出る。
  • ここ見て情報を知った。
  • 「src-tauri/tauri.conf.json」というファイルが該当するみたい。
  • とりあえず「com.tauri.dev」から「com.tauri.build」に変更。いいのかなこれ。どういう値がいいのかわからん。
  • で、ビルドしたところインストーラが一式出来上がってるじゃん!なんて至れり尽くせり!
  • ただアンインストールはそれほど完全ではなく実行ファイルが残る模様。手動で消す必要がある模様。
  • そもそもインストーラが必要という時点で色々な準備が必要なことが予想されて、軽いアプリにしたい自分としてはちょっともにょるところはある。
  • 別の選択肢では、ゲームエンジンのbevyとかか。


  • 個人的に思ったのは、Rustは言語というよりCargoがとっても使いやすいのだ!ずんだもんなのだ!ってこと。(ずんだもんではない

その他

  • ひな祭りだということを忘れてる。
2024/03/03.1709457905.txt.gz · 最終更新: 2024/03/03 18:25 by machiaworx