はじめに
- Windows下のC/C++開発においてVisual Stadio Codeが便利なので,Eclipseから乗り換えました.
C/C++環境で困ったこと
Visual Stadio CodeにC/C++ for Visual Studio Codeを導入すれば,C/C++コード検索するための環境はおおよそ整いますが,これだけだと「指定した関数が参照されている先を全て検索する」ができません.. この点だけ、Eclipseより劣るので不便でした.
gtagsの導入で解決
しかし調べてみるとC++Intellisenseと,GNU GLOBAL(gtags)を導入することで,「指定した関数が参照されている先を検索する」が可能になることがわかりました.
設定方法をまとめました
今回はWindows環境で,C++Intellisenseと,GNU GLOBAL(gtags)を導入に関する纏まった情報がなかったので,以下に記述します.
環境の作り方
VisualStadioCodeに拡張機能C++Intellisenseを追加する
- VisualStadioCodeで"Ctrl+Shift+X"を入力して拡張機能を表示する.
- Marketplaceで拡張機能を検索する欄に,C++Intellisenseと記載しプラグインを検索及びinstallを完了する.
GNU GLOBAL(gtags)をinstallする
GNU GLOBAL(gtags)とは,C/C++の参照関係を記述したタグファイルを生成するライブラリ. GNU GLOBAL(gtags)が詳しいので,以下はポイントを簡単に.
- http://adoxa.altervista.org/global/からWindwos用のバイナリをダウンロードして展開する.
- C:\usr\global\ 以下に上記で提供されているファイル(zipを展開したもの)を全部コピーする.
- Windowsの環境変数PATHにC:\usr\global\binを追加し,PCを再起動する等により環境変数を有効化する.
- 以上で,C++IntellisenseからGNU GLOBAL(gtags)の実行ファイルを呼び出す環境が構築できる.
ターミナルを立ち上げて,gtags.exeを実行する.
- VisualStadioCodeで,「指定した関数が参照されている先を検索する」を行いたいC/C++コード群のフォルダを開く.
- VisualStadioCodeから"Ctrl+@"で統合ターミナル(コマンドプロンプト)を起動する.
- 以下のコマンドで,gtags.exeを利用して,「指定した関数が参照されている先を検索する」ためのタグファイルを生成する.
> gtags.exe -v
- GPATH, GRTAGS, GTAGSという3つのタグファイルが生成される.
- [参考]C/C++コードの参照関係を変更したタイミングで,再度gtags.exeを実行する必要がある.
C/C++コード上で.「すべての参照の検索」を実行する.
- VisualStadioCodeで,「指定した関数が参照されている先を検索する」を行いたいC/C++コードファイルを開く.
- 任意の関数を反転させて,右クリックまたは,Shift+F12で,すべての参照の検索を実行する.
- gtags.exeでタグファイルが正しく生成されていれば,参照先の一覧が表示される.
エラー(実行できない)時に確認すべき点
- 任意の関数を反転させて,右クリックまたは,Shift+F12で,すべての参照の検索が出来ない場合は,C++Intellisenseプラグインからhttp://adoxa.altervista.org/global/の導入が出来ていない
- ※gtags.exeでタグファイルが正しく生成されていなければ,結果がありませんと出る.
リンク