Qt の Orm である QxOrm を使ってみたくなったので、MacOS にインストールを試みた。
あらかじめ言っておきますが、試みただけで、(動くことは動いたが)完全にうまくいったというわけではないので念の為。
この手のややマイナーなソフトはメンテなどが手薄な感は否めない。
トライアル1
手順は QxOrm の公式ページで案内されている。
案内は windows のみなので、Mac の場合は適宜読み換える。
1 まず、Qt をインストール。
ここは問題ないでしょう。ただし、Qt5 で説明しているが、現在(2023/1月頃)の最新版は 6.2.4 である。
後で説明すると思うが、Qt6 では、このバージョン(1.4.8)はビルドできないことがわかっている。
2 qmake がコマンドラインから使えるように PATH を修正。
今後のことを考えるとここはやっておいた方がいいでしょう
3, 4 boost の lib_shared を使えるようにしておく(optional)
ただし、boost は必須ではない。開発者も言っているが、ビルドできるかもわからない段階で無理してこの機能を試す必要性は薄い。
5 QxOrm 本体のダウンロード
ダウンロードページはこちら。これを書いている時点でのバージョンは 1.4.8 。
6 boost を使う場合は、QxOrm の QxOrm.pri を適宜編集
上で触れたように、ここは飛ばしましょう。
7 QXORM_DIR を環境変数に加える。
ここはやっておきましょう。
この後、8, 9, 10 とサンプルを試す手順が説明されているのだが、当たり前だが、QxOrm のライブラリ自体が構築されていないのでリンカエラーが出る。
というわけで、ライブラリを構築する。。。のだが、ここでエラー。
打開策
GitHub にいくと、Unable compile QxOrm1.4.8 というド直球な issue が立っている。
開発側は
I can build QxOrm and all examples without any issue with Qt 6.2.3, so I think it should be OK with Qt 6.2.4 (if you download latest version on GitHub, which should be : QxOrm_1.4.9_BETA_18)
と、1.4.9 を使えと言っている。
しかし、有償のライセンス(無償と有償のダブルライセンス)もあるのに、これはいかんのでは?と思わないでもない。
トライアル2
というわけで、GitHub から 1.4.9 を落としてきて、ビルド。
今度は、ビルド成功。
添付のサンプルを動かしたみた限りでは動作も問題なさそう。
wt::dbo vs odb vs QxOrm
ところで、C++ の ORM は定番というものがない。
QxOrm, odb, wt::dbo あたりがそこそこは知られているのだが、wt::dto の作者さんがユーザーさんの質問に答える形で3者の相違について語ってます。(→ 記事)