giciの実行・デバッグ
gici (の、inuex35氏によるフォーク) を実行・デバッグする方法と、試行錯誤の記録。
方針
inuex35氏のフォークではDockerのイメージが配布されているが、Dockerの実行にはホストマシンに相応のスペックが要求されるため、用いない。 同じ理由により、WSL2などの仮想環境も用いず、実環境にて実行する。
実環境には推奨環境のUbuntu 20.04を用いる。 これはサポートが終了しているため、動作が確認されており、現在 (2025/07/09) もサポートのあるLTSである22.04にて実行することが望ましい。 ただし、最新のLTSである24.04での実行には難がある。
コンパイル環境の設定
コンパイラはGCCを用いる。 inuex35氏の提供するDockerfileを参考に、必要なライブラリのインストールを行う。
エディタ・IDEの設定
エディタにはVSCodeを用いる。
デバッガにはgdbを用い、デバッグ構成はlaunch.json, tasks.jsonで管理する。
記録
試した方法とその結果。 読む必要なし。
MSVC (+ vcpkg)
依存ライブラリの用意が煩雑だったため、vcpkgを使用する。
結果:
- ライブラリのコンパイルでエラーが多発したため、断念
- vcpkgの代わりにconanなどのパッケージマネージャを使ったり、手動でライブラリをダウンロード・コンパイルしたりするなどの方法もあるが、試していない。
- ライブラリが用意できたとして、gici本体がそのままWindowsで実行できるかは不明。
MinGW-w64 + GCC
必要なライブラリがMSYSで提供されていればコンパイルできる可能性があるが、試していない。
WSL2 + Ubuntu 24.04 + GCC
- 実環境のUbuntu 24.04と同様、Ceresのビルドに失敗する。
- スペック不足で落ちる。
- vmmemwsl.exe(?)がホストマシンのリソースを食い潰す。(=スペック不足)
Docker + Ubuntu + GCC
inuex35氏が提供するDockerのイメージを使用する。
結果
- giciの実行は確認できた
- Dockerの実行に難がある場合がある
- スペック不足で異常終了
- Docker Engineの実行時のログイン処理でエラー(?)
- デバッグにはDockerの環境をSSHサーバとし、gdbserverを実行し、それにWindowsからアクセスする必要がある。これは煩雑なため、試していない
Ubutnu 24.04(実環境) + GCC
- ceres-solverのビルドに失敗。suite-sparseのバージョンが新しすぎることが原因か。
- バージョン指定して手動でビルドすれば解決できる可能性がある。
Ubutnu 20.04(実環境) + GCC
- 成功