Visual Studio プロジェクトファイルのインポート

Understandプロジェクトは、Visual Studioプロジェクトファイル(ソリューション、プロジェクト)をインポートして作成することもできます。

Understandプロジェクトの作成は、解析対象のソースコードファイルを直接登録することでもおこなえますが、手動でインクルードパスやマクロの設定、DLLのパスを設定する必要があるため手間がかかります。

これに対してインポートによる作成は、Visual Studioプロジェクトに設定済みの情報がUnderstandプロジェクトに取り込まれるため、設定の手間を削減することができます。

インポート可能なVisual Studioプロジェクトファイルと、その対応バージョンは下記の通りです。

  • C++ : Visual C++ 5.0, 6.0, Visual Studio 2003, 2005, 2008, 2010, 2012, 2013, 2015
  • C# : Visual Studio 2003, 2005, 2008, 2010, 2012, 2013, 2015

※ Visuals Studio 2017 は、2019年にリリース予定のUnderstandバージョンで対応する予定です。

今回は、Visual Studioプロジェクトファイルのインポートによるプロジェクト作成手順と注意事項について紹介します。

Visual Studioプロジェクトの設定確認

サンプルプロジェクトの設定内容

Visual C++のACTIVEDOC サンプルを用いて、説明します。
ActiveDocソリューション(ActiveDoc.sln)に、ActiveDocプロジェクト(ActiveDoc.vcxproj)とCreateDocFileプロジェクト(CreateDocFile.vcxproj)の2つのプロジェクトが含まれています。

ActiveDocプロジェクトとCreateDocFileプロジェクトの[構成プロパティ]-[VC++ディレクトリ]の[インクルードディレクトリ]は、下記のような設定がされています。

ActiveDocプロジェクトの[構成プロパティ]-[C/C++]の[追加のインクルードディレクトリ]には、設定がされていません。


一方、CreateDocFileプロジェクトの[構成プロパティ]-[C/C++]の[追加のインクルードディレクトリ]には、設定がされています。

また、[構成プロパティ]-[C/C++]-[プリプロセッサ]の”プリプロセッサの定義”にも設定がされています。


Understandプロジェクトの作成

Visual C++のVisual Studioソリューション・プロジェクトをインポートし、Understandプロジェクトを作成する手順は以下のとおりです。

  1. [ファイル]メニューの[新規]-[プロジェクト]を選択します。
  2. デフォルトの設定では、新規プロジェクトウィザードが表示されます。ウィザードの[プロジェクトファイルの作成]ページの[名前]にプロジェクト名を入力し、保存するディレクトリを選択します。
  1. ウィザードの[言語]ページで、[C/C++]のチェックボックスをオンにします。[Fuzzy]のオプションをオンにします。
  1. ウィザードの[ファイルと設定のインポート]画面で、[Visual Studio プロジェクトファイルのインポート]のオプションをオンにします。
  1. [Visual Studioファイル]ページで、[追加]ボタンをクリックし、Visual Studioのファイル(*.sln, *.vcproj, *.vcxproj等)を選択します。
  1. [新規Visual Studioファイルの追加]ダイアログでは、複数のVisual Studioプロジェクトを追加や、構成を変更することができます。また、[コンテンツ]リストを展開することで、選択している構成のインクルード、マクロ定義、ファイルを参照できます。
    上記の例では、CreateDocFile.vcxprojプロジェクトで、設定済みの追加のインクルードディレクトリとプリプロセッサの定義がUnderstand側にも取り込まれていることが分かります。

    インポートで取り込まれる設定
    Visual Studio上の[プロパティ]-[C/C++]-[追加のインクルードディレクトリ]
    Visual Studio上の[プロパティ]-[C/C++]-[プリプロセッサ]

    Visual Studioのプロジェクトで定義済みであるインクルードファイル(/I)とマクロ定義(/D)は、Visual StudioプロジェクトをインポートしてUnderstandプロジェクト作成した場合、Understandに取り込まれ、その設定情報に基づき、解析が行なわれます。
    Visual Studioのプロジェクトファイルに記載されているタグで囲まれたとの情報が取り込まれます。

    インポートで取り込まれない設定
    ・Visual Studio上の [VC++ディレクトリ]-[インクルードディレクトリ]

    Visual Studioのプロジェクトファイルに記載されているの情報は、Visual StudioプロジェクトをインポートしてUnderstandプロジェクト作成した場合、Understandに取り込まれないため、Understandメニュー[プロジェクト]-[プロジェクトの設定]-[C++]- [インクルード]で追加いただく必要があります。[プロジェクト]-[プロジェクトの設定]-[C++]-[インクルード]を選択し表示される画面の[検索]ボタンからも設定できます。

  2. ウィザードの[ソースファイル]画面では、特に何も設定せずに、[次へ]ボタンをクリックします。
  1. ウィザードの[解析準備完了]画面で、[完了]ボタンをクリックし、解析をおこないます。
  1. 解析後、解析ログには複数の警告が表示されます。
  1. 警告には、ヘッダーファイルが見つからない([W] ファイル ‘xxx.h’ をインクルードできません)等が表示されます。
    これを解決するため、解析ログ画面で、[未解決インクルードの検索]リンクをダブルクリックします。

未解決ヘッダーファイルを検索するディレクトリを指定し、[検索]ボタンをクリックします。ヘッダーファイルが見つかった場合、追加するディレクトリの隣の [+]ボタンをクリックする、または[すべて追加]ボタンをクリックします。

  1. 未解決ヘッダーファイルのリストが更新され、見つかったヘッダーファイルは緑色のアイコンで表示されます。[保存]ボタンをクリックし、プロジェクト設定に変更を適用します。
  1. プロジェクト設定の変更ダイアログで、[はい]ボタンをクリックし、再解析をおこないます。
  1. 再解析後、解析ログで警告は表示されなくなりました。
    (サンプルでは、エラー:0, 警告:0になりました。)

トラブルシューティング

解析後、エラーや警告が出力される場合、下記の現象に該当していないか、ご確認ください。

  • Visual Studio上の [VC++ディレクトリ]-[インクルードディレクトリ]で設定されているWindowsアプリケーション作成に必要なヘッダーファイルのパスは、Understandプロジェクトに取り込まれません。Understandメニュー[プロジェクト]-[プロジェクトの設定]-[C++]-[インクルード]の設定に追加してください。
  • インポートするVisual Studioのプロジェクトの構成/プラットフォーム(例、Release/Win32)がソリューションの構成と一致しているか、ご確認ください。ソリューションとプロジェクトの構成が異なる場合、プロジェクトがインポートされません。
  • Visual Studioプロジェクト側で複数の構成(構成/プラットフォーム)が存在する場合、インクルードディレクトリやプリプロセッサを設定した構成とUnderstand設定側で選択している構成が等しいことをご確認ください。
  • UnderstandのC/C++言語設定のオプションで、Stirctが選択されていないか、ご確認ください。Strict解析で用いられているコンパイラは、Visual Studioやgccなどのコンパイラではエラーにならない構文であっても、より厳格に解析されるため、エラーや警告となる場合があります。Fuzzyモードによる解析をご利用ください。


解析対象のビルド環境にVisual Studioを利用されている場合、Understandプロジェクトの作成は、Visual Studioのプロジェクトまたはソリューションのインポートから作成すると便利です。

是非ご利用ください。

タイトルとURLをコピーしました
Close Bitnami banner
Bitnami