このページの本文へ移動

富士通ソフトウェアテクノロジーズ

Japan

仕様書工房
FAQ

本製品は2009年3月20日をもって販売を終了いたしました。
本製品をご利用いただいているお客様へのサポートも、2010年3月31日をもって終了いたしました。(販売終了のお知らせはこちら)

ビルド編


1. コンパイルエラーは起こらないのに、仕様書工房では解析エラーになってしまう

C++仕様書工房3

解析に関する情報を確認してください。
解析に関する情報は、「プロジェクト」-「プロジェクトの設定」-「解析に関する情報の設定」メニューで表示される「解析に関する情報の設定」ダイアログで、確認することができます。

  • プリプロセッサマクロの指定を確認してください。

    例1: Microsoft Visual C++ をご利用の場合
    プリプロセッサマクロに、以下の指定をしてください。
    • Developer Studio の「プロジェクト設定」ダイアログの「プリプロセッサの定義」の内容
    • Makeファイルで、条件文字列を指定するオプション(たとえば /Dオプション)に指定している文字列
    • SDK/DDKのプログラムを nmake でビルドしている場合は、cl 実行時に指定される
      -Dオプションの値

    例2: Borland C++ Builder をご利用の場合
    プリプロセッサマクロに、以下の指定をしてください。
    • Borland C++ Builder および Borland C++ Builder3 の場合
      C++ Builder の「プロジェクトオプション」ダイアログでの「条件定義」の内容
    • Borland C++ Builder4、Borland C++ Builder5 および Borland C++ Builder6 の場合
      該当プロジェクトを開き、「プロジェクト」-「メイクファイルの表示」メニュー(Borland C++ Builder4) または「プロジェクト」-「オプションソースの編集」メニュー(Borland C++ Builder5 および Borland C++ Builder6)を選択してください。表示されるファイルの以下の変数の指定値("="以降に指定されている文字列)
      • SYSDEFINESの指定値
      • USERDEFINESの指定値
      • 各CFLAGの -Dオプションの値

    例3: Microsoft eMbedded Visual C++ をご利用の場合
    eMbedded Visual C++のビルド時に「プリプロセッサの定義」に指定している文字列を、プリプロセッサマクロに指定してください。
    "UNDER_CE=$(CEVersion)" のように指定されている場合には、$(CEVersion)の部分を該当する文字列に置き換えて指定してください。
    例) UNDER_CE=400

参考:
eMbedded VisualC++ 4.0のプロジェクトフォルダにある拡張子 vcl のファイルに、ビルド時のログ結果が表示され、$(CePlatform)や$(CEVersion)などのビルド時の値も表示されます。


  • C処理系の指定が、ご使用の製品と合っているかを確認してください。
    Microsoft eMbedded Visual C++ をご利用の場合は、「Microsoft VisualC++ 6.0」を選択してください。該当する製品がない場合は、「その他」を選択してください。

    なお、「その他」を選択している場合、C処理系固有の文法やキーワード、C処理系が内部で持っている条件文字列の指定不足が原因の可能性もあります。
    カスタマイズ方法については、「2. 「プロジェクト新規作成」ウィザード (1/7) の「C処理系とコード系」で、リストに表示されるC処理系以外のC/C++ソースは ビルドできますか?」をご参照ください。
     
  • プロジェクトに登録しているソース ファイルの拡張子を確認してください。以下の場合には、拡張子を指定してください。
    ・ .c 以外のCソース ファイル
    ・ .cpp 以外のC++ソース ファイル
     
  • ソース プログラムの文字コードを確認してください。
    たとえば、ソースファイル(.c)のコード系がShift-JISで、インクルード ファイル(.h)のコード系がEUCで記述されている場合、どちらかに、コード系を統一してください。
     
  • テンプレートを使用するプログラムの場合、「テンプレート文を高速モードで解析しますか?」を 『いいえ』 にしてください。

2. 「プロジェクト新規作成」ウィザード (1/7) の「C処理系とコード系」で、リストに表示されるC処理系以外のC/C++ソースはビルドできますか?

C++仕様書工房3

ANSI規格に準拠したC/C++ソースならばビルドできます。「プロジェクト新規作成」ウィザード(1/7)の「C処理系とコード系」において、「C処理系」は「その他」を選択してください。
C処理系固有の文法やキーワードがある場合、カスタマイズにより対応できます。カスタマイズ方法については、以下を参照してください。

  • Readme.txt の 「10.ご使用のC処理系の固有文法への対応方法」
  • ヘルプ 「仕様書を作成する」-「仕様書を作成した後で」-「解析に関する情報を変更する」-「C処理系固有の情報を設定する」

また、ほとんどのC処理系には、コンパイル時に指定する条件文字列の他に、C処理系が内部で持っている条件文字列や、翻訳オプションの指定により有効になる条件文字列などがあります。
リストに表示されるC処理系は、内部で持っている条件文字列があらかじめカスタマイズされていますが、リストに表示されない処理系については、個々に設定していただく必要があります。
お使いのコンパイラの「ユーザーズガイド」などに、「事前定義シンボル」などという項目で説明があると思いますので、こちらをご確認ください。
そして、仕様書工房のインストールフォルダにありますカスタマイズファイル"Customize"の [DEFINE]タグに指定してください。

3. 「解析情報の読み込み領域が不足しています。カスタマイズツールを起動し、解析情報の読み込み領域サイズを拡張してください。」というメッセージが表示される

共通

解析情報の読み込み領域の設定は、カスタマイズ ツールを使って行います。

例:C++仕様書工房3の場合

  • 「ツール」-「カスタマイズツール」メニューを選択します。
    操作後 カスタマイズ ツールが起動されます。
     
  • 左にある設定項目ツリーウィンドウで、「C++仕様書工房の設定」-「環境設定」-「解析情報の読み込み領域」を選択します。
    操作後 解析情報の読み込み領域の設定画面が表示されます。
     
  • [解析情報の読み込み領域サイズ]で、解析情報の読み込み領域のサイズを設定します。
     
  • 「設定」ボタンをクリックします。
     
  • 仕様書工房を起動し直してください。

参考:

  • 解析情報の読み込み領域サイズは、プロジェクトを開く時間に大きく関係します。そのため、必要以上に大きなサイズを設定しないようにしてください。
    設定するサイズは以下を目安とし、エラーが発生しなくなるよう調整してください。

    ・C++仕様書工房3、J仕様書工房3 の場合
    6から12、12から18へと少しずつ増分させる。

    ・VB仕様書工房3、C#仕様書工房3 の場合
    解析情報の読み込み領域が不足しているプロジェクトのプロジェクト フォルダ直下にある解析情報ファイル(拡張子が .any のファイル)のサイズ(MB) + 6 くらい
  • エラーメッセージが出力されない場合は、デフォルト値 (6MB) を指定するようにしてください。

4. ビルド中に「インクルードファイルが見つかりません!」というメッセージが表示される

C++仕様書工房3

「解析に関する情報の設定」ダイアログの「インクルード」タブに設定されているインクルード ファイルのパスを確認してください。

たとえば、ビルドするソースで取り込んでいるインクルード ファイルのパスが指定されていない場合は、インクルード ファイルのパスを指定してください。インクルード ファイルのパスを指定するには、以下の手順で行います。

  • 「プロジェクト」-「プロジェクトの設定」-「解析に関する情報の設定」メニューを選択します。
    操作後 「解析に関する情報の設定」ダイアログが表示されます。
     
  • 「インクルード」タブを選択します。
     
  • [解析対象ファイル]に、プロジェクト名と登録されているファイルが表示されています。
    ここで、インクルード ファイルのパスを設定する対象として、プロジェクト名またはファイル名を選択します。

    ・ プロジェクト名を選択する場合
    どのソース ファイルでも取り込んでいるインクルード ファイルのパスを指定します。

    ・ ファイル名を選択する場合
    選択したファイルだけが取り込んでいるインクルード ファイルのパスを指定します。
     
  • 「フォルダ」の右にあるボタンをクリックして、インクルード パスを指定します。
     
  • 手順4で指定したパスが、以下のどちらのインクルードかを選択します。

    ・ 標準インクルード
    「標準インクルード」として、インクルード ファイルのパスを設定すると、設定したパスにあるインクルード ファイルで定義されている情報は、仕様書に表示されません。

    ・ 私用インクルード
    「私用インクルード」として、インクルード ファイルのパスを設定すると、設定したパスにあるインクルード ファイルで定義されている情報は、仕様書に表示されます。
     
  • 「追加」ボタンをクリックします。
    操作後 「フォルダリスト」に、追加したフォルダ名とインクルードの種類が表示されます。

上記設定後、再度ビルドして、ご確認ください。

なお、インクルード ファイルのパスの設定に関する詳細については、ヘルプ「仕様書を作成する」-「仕様書を作成した後に」-「解析に関する情報を変更する」-「インクルード ファイルのパスを設定する」を参照してください。

5. 解析後の結合中に、「領域不足が発生しました」というエラーメッセージが表示され、処理がストップしてしまう

C++仕様書工房3

領域不足の根本原因は、結合処理中にページファイルを含めた仮想メモリの不足です。
「システムのプロパティ」で、ページファイルのサイズを拡張してください。

なお、プリコンパイル済みヘッダーが適用されていないプロジェクトでは、仕様書工房が多大なリソースを消費し、領域不足を起こす可能性が高くなります。できるだけプリコンパイル済みヘッダーを適用してください。プリコンパイル済みヘッダーは、以下の方法で適用します。
適用方法の詳細については、ヘルプ 「仕様書を作成する」-「プロジェクトを作成する」の手順8 「プリコンパイル済みヘッダー」を参照してください。

  • 「プロジェクト」-「プロジェクトの設定」-「解析に関する情報の設定」メニューで表示される「解析に関する情報の設定」ダイアログの「プリコンパイル」タブを選択します。
     
  • 「プリコンパイル済みヘッダーを使用する」チェック ボックスをオンにします。
     
  • 「プリコンパイル済みヘッダーの作成情報」を指定します。

    例1) Microsoft Visual C++ をご利用の場合
    「先頭からこのヘッダーまで」に、stdafx.h または windows.h を指定します。

    例2) Borland C++ Builder をご利用の場合
    「先頭からこのヘッダーまで」に、vcl.h を指定します。

    「参照するソース」には、上記ヘッダーファイルを取り込んでいる任意のソース ファイルを選択します。

プリコンパイル済みヘッダーが適用できないプロジェクトで、上記現象が起きる場合、以下の方法でリソースの消費を削減できます。

  • できるだけ複数のプロジェクトに分割してソースを登録する。
    EXE や DLL 単位にプロジェクトを分割してください。
    また、1つのリンク単位でも、プログラムの構造上、分割できるものは分割して登録してください。
  • 情報の必要ないクラスや構造体が定義されているヘッダーファイルのパスは、できるだけ「標準インクルード」に設定する。
    「標準インクルード」は、「解析に関する情報の設定」ダイアログの「インクルード」タブで設定します。

6. インクルード ファイルは、C処理系で提供しているファイルを含めて、すべて揃っていないとビルドできないのですか?

C++仕様書工房3

解析モードによって、以下のように異なります。

  • 解析モードが 「参照情報を採取して解析する」 または 「参照情報を採取せずに解析する」 の場合
    参照情報や呼出し関係など細かい情報を採取しているため、すべてのインクルード ファイルが揃っている環境でないと、ビルドできません。
  • 解析モードが 「簡易モードで解析する」 の場合
    すべてのインクルード ファイルが揃っている必要はありません。
    たとえば、以下のような場合でも、仕様書を作成することができます。

     ・ 開発途中で、インクルード ファイルのみ存在する
     ・ コンパイラが提供しているインクルード ファイルがない環境

解析モードは、「プロジェクト新規作成」ウィザードで設定します。
また、プロジェクトがどの解析モードで設定されているかを調べるには、「プロジェクト」ウィンドウでプロジェクト名を選択し、「プロパティ」ウィンドウの「解析モード」欄を確認します。

7. 「プロジェクト新規作成」ウィザードの「解析対象ファイルの登録」で、インクルード ファイルも指定する必要がありますか?

C++仕様書工房3

解析モードによって、以下のように異なります。

  • 解析モードが 「参照情報を採取して解析する」 または 「参照情報を採取せずに解析する」 の場合
    インクルード ファイルを指定する必要はありません。
    「解析に関する情報の設定」ダイアログの「インクルード」タブで、インクルード ファイルのパスを設定します。
  • 解析モードが 「簡易モードで解析する」 の場合
    インクルード ファイルも指定します。ここで指定されなかったインクルード ファイルは、解析の対象になりません。

8. インライン アセンブラやSQL文を使ったソース ファイルはビルドできますか?

C++仕様書工房3

カスタマイズ ファイルに定義することで、ビルドできます。カスタマイズ ファイルは、テキスト エディタ等を利用して編集してください。

編集するカスタマイズ ファイルは、「プロジェクト」-「プロジェクトの設定」-「解析に関する情報の設定」メニューで表示される「解析に関する情報の設定」ダイアログの「C処理系」タブでの設定により異なります。詳細は、Readme.txt の 「10.ご使用のC処理系の固有文法への対応方法」を参照してください。

・インライン アセンブラの場合

カスタマイズ ファイルの[ASMKEY]タグに、asm文の開始キーワードを定義します。
なお、以下のように、プリプロセッサの指令で囲んでasm文を表現する場合は、開始と終了の指令をカンマ "," で区切って定義してください。

ソースの記述 カスタマイズ ファイルの指定
#pragma asm
  アセンブラの記述
#pragma endasm
[ASMKEY]
#pragma asm,#pragma endasm

・SQL文の場合

カスタマイズ ファイルの[SQLKEY]タグに、";EXEC SQL" という記述があります。先頭に ";(セミコロン)" があるとコメントとみなされるので、先頭の ";(セミコロン)" を削除して、この定義を有効にします。

上記設定により、インライン アセンブラやSQL文は読み飛ばされて、解析されます。

9. Makeファイルから情報を採取しても、「インクルードファイルが見つかりません!」というメッセージが表示される

C++仕様書工房3

Makeファイルから解析情報を採取した場合、Makeファイルに指定されているインクルード ファイルのパスは、採取されて、「解析に関する情報」として設定されます。

しかし、環境変数や開発環境で設定しているインクルード ファイルのパスは、採取されません。「プロジェクト新規作成」ウィザードの「解析に関する情報の設定」ページで、追加してください。
たとえば、Microsoft Visual C++ をご利用の場合、以下で設定しているインクルード ファイルのパスは、採取されません。

  • 環境変数 INCLUDE に設定されているパス
  • Developer Studio の「オプション」ダイアログ-「ディレクトリ」タブで設定されている「インクルード ファイル」のパス

そのため、環境変数や開発環境で設定しているインクルード ファイルのパスについては、カスタマイズ ツールで指定しておくと便利です。
カスタマイズ ツールで、インクルード ファイルのパスを指定しておくと、プロジェクト新規作成時に、自動的に設定されます。
インクルード ファイルのパスの指定は、以下の手順で行います。

  • 「ツール」-「カスタマイズツール」メニューを選択します。
    操作後 カスタマイズ ツールが起動されます。
     
  • 左にある設定項目ツリーウィンドウで、「C++仕様書工房の設定」-「環境設定」-「インクルードパス」を選択します。
    操作後 インクルード パスの設定画面が表示されます。
     
  • 「フォルダ」の右にあるボタンをクリックして、インクルード パスを指定します。

    例: Microsoft Visual C++ をご利用の場合
    環境変数 INCLUDE に設定されているパスや、Developer Studio の「オプション」ダイアログ-「ディレクトリ」タブで設定されている「インクルード ファイル」のパスを指定します。
     
  • 「追加」ボタンをクリックします。
    操作後 「フォルダリスト」に、追加したフォルダ名が表示されます。
     
  • 「設定」ボタンをクリックします。

上記設定後、Makeファイルを採取してプロジェクトの新規作成を行った場合、カスタマイズツールで設定したインクルード ファイルのパスが、自動的に設定されていることを確認してください。

10. ビルド中に「解析情報がありません」というメッセージが表示される

C++仕様書工房3

「解析に関する情報の設定」ダイアログの「拡張子」タブで、解析するソース ファイルの拡張子を確認してください。

解析するソース ファイルの拡張子が以下の場合に、ソース ファイルの拡張子を設定します。

  • 解析するCソース ファイルの拡張子が .c 以外
  • 解析するC++ソース ファイルの拡張子が .cpp 以外

なお、拡張子を変更した後は、ビルドしてください。

11. UTF-8コードで記述されたソース ファイルが解析できない

VB仕様書工房3 C#仕様書工房3

Web参照を除くUTF-8コードで記述されたソース ファイルは、解析対象になりません。

12. 複数のvbpファイルを一括してプロジェクトに登録したい

VB仕様書工房3

複数の関連するプロジェクト ファイル(.vbp)を、プロジェクト グループ ファイル(.vbg)にまとめます。その後、プロジェクト グループ ファイル(.vbg)を指定して、仕様書工房のプロジェクトを作成します。
プロジェクト グループ ファイル(.vbg)に登録されているプロジェクト ファイル(.vbp)が一括して登録されるので、便利です。

プロジェクト グループ ファイル(.vbg)を指定してプロジェクトを作成するには、以下の手順で行います。

  • 「ファイル」-「新規作成」メニューを選択します。
    操作後 「新規作成」ウィザードが表示されます。
     
  • 「プロジェクトの作成」を選択します。
     
  • 「次へ」ボタンをクリックします。
    操作後 「プロジェクト新規作成 Wizard ステップ (1/3) 」画面が表示されます。
     
  • 「対象ファイルの種類」は、新しく作成するプロジェクトの Visual Basic の種類を選択します。
     
  • 「対象ファイル名」は、プロジェクトグループファイル (.vbg) を指定します。
    対象ファイルの種類が Visual Basic .NET の場合は、ソリューション ファイル(.sln)を指定します。

以降、任意に設定して、プロジェクトを作成します。


その他のFAQ