本文を読み飛ばす

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

  • 成功