オッサンはDesktopが好き

自作PCや機械学習、自転車のことを脈絡無く書きます

# CloudCompareをViusal Studioでデバッグする

 公式を見ながら*1悪戦苦闘した記録.

0. 環境

1. 必要資源の取得

(1) CloudCompareの最新ソースを取得

$ cd C:\Tools
$ mkdir CloudCompare
$ cd CloudCompare
$ git clone --recursive https://github.com/cloudcompare/CloudCompare.git

Note:

  • C:\Tools下にソースを取得
  • Git bashを使ったが,コマンドプロンプトでも何でも良い
  • インストール時のver. は下記
    f:id:changlikesdesktop:20210507040415p:plain:w200
    ビルド時のver.

(2) CMake-guiをダウンロード*2

f:id:changlikesdesktop:20210507040941p:plain:w600
cmakeのZIP版を取得

Note:

  • インストーラでも良いと思うが,今回はZIPを取得
  • 解凍して適当な場所に置いておく
  • この後で使う cmake-3.20.2-windows-x86_64\bin\cmake-gui.exe をスタートアップにピン留めすると便利

(3) Qtをインストール

f:id:changlikesdesktop:20210507041911p:plain:w600
ここ*3からダウンロード

f:id:changlikesdesktop:20210507043520p:plain:w400
custom installationを選択

f:id:changlikesdesktop:20210507043610p:plain:w400
MSVC 2017 64-bitをチェック

f:id:changlikesdesktop:20210507043708p:plain:w400
スゲー時間かかかる

Note:

  • ここ*4で綺麗に説明されていた
  • Qtのアカウント確定メールが迷惑メールに振り分けられて少し迷った

2. Visual Studioのプロジェクトファイルを出力

f:id:changlikesdesktop:20210507051136p:plain:w400
cmake-guiを起動し,ソースの場所とビルド先を指定してConfigure

f:id:changlikesdesktop:20210507054315p:plain:w300
Visual Studio 2017,x64を指定

f:id:changlikesdesktop:20210507051552p:plain:w400
Qt5_DirがNOT FOUNDになる.Qtのインストール先からパスを指定して再度Configure

f:id:changlikesdesktop:20210507052009p:plain:w400
今度はQt5LinquistTools_DirがNOT FOUNDになる.これもパスを指定してConfigure

f:id:changlikesdesktop:20210507052203p:plain:w400
エラーが無くなったのでGenerate

f:id:changlikesdesktop:20210507052438p:plain:w400
先刻指定したBuild先にslnが出来るので,起動する

f:id:changlikesdesktop:20210507075246p:plain
INSTALLをビルド.CloudCompareをスタートアッププロジェクトに設定しておく

f:id:changlikesdesktop:20210507075345p:plain:w400
C:\Program Files下にCloudCompareProjectsができる.CloudCompare_debug内のdllとフォルダをbuild\qCC\Debugにコピー

f:id:changlikesdesktop:20210507080015p:plain:w400
デバッガを起動

Note:

  • 書き込み権限の問題でCloudCopmareProjectsが出来ない場合は,Visual Studioを管理者権限で実行する
  • Linuxでも同様の事が出来ると思うが,gdb単体でデバッグするのはツラい...統合環境とかみ合うか,今度やってみる

追記(2021/5/11)

 Program Filesから持ってきたdllでは,dllの中身をデバッグできない.dllの中に入りたいときは,lib内の個別プロジェクトにできるdllとシンボルを実行フォルダにコピーする.例えば:

f:id:changlikesdesktop:20210511051256p:plain:w400
dll内のデバッグにはシンボルが必要.pdbだけコピーすると何故か駄目で,dllも一緒にコピーした