前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3

8.2. エラー / 警告 メッセージ

8.2.1. "fatal error C1083: インクルードファイルがオープンできません。'SophiaFramework.hpp'"

対処法:インクルードファイル および ライブラリファイルが正しく設定されているか確認します。

最初に、以下の手順で環境変数 SFHOMEBREWDIR の設定内容を確認します(前提条件 : SophiaFramework UNIVERSE と BREW SDK はインストール済みとします)。

  1. マイコンピューターを右クリックして [プロパティ] を選択し、[システムのプロパティ] ダイアログを開きます。
  2. [詳細設定] タブを選択します。
  3. [環境変数] ボタンを選択し、[環境変数] ダイアログを開きます。
  4. [ユーザー環境変数] の項目に環境変数 SFHOME が存在し、SophiaFramework UNIVERSE フォルダのパスが設定されているか確認します。
  5. [ユーザー環境変数] の項目に環境変数 BREWDIR が存在し、現在使用している BREW SDK フォルダのパスが設定されているか確認します。
[Note] 環境変数 SFHOME / BREWDIR の値

SophiaFramework UNIVERSE をインストールすると、 環境変数 SFHOME に SophiaFramework UNIVERSE のインストール先フォルダのパスが設定されます。

環境変数 SFHOME のデフォルト値は、

C:\Program Files\Sophia Cradle\SophiaFramework\5.3

です。

BREW SDK をインストールすると、 環境変数 BREWDIR に BREW SDK のインストール先フォルダのパスが設定されます。

BREW SDK 4.0.1 SP05(日本語版) の場合、環境変数 BREWDIR のデフォルト値は、

C:\PROGRA~1\BREW40~1.1SP\sdk

です。

8.2.1.1. Visual C++ 6.0 の場合

1. メニューから [プロジェクト] -> [設定] を選択します。

2. インクルードファイルのパスを確認します。

  1. [C/C++] タブを選択します。
  2. [カテゴリ] の項目から [プリプロセッサ] を選択します。
  3. [インクルードファイルのパス] の入力に
    $(BREWDIR)\inc,$(SFHOME)\Include 
    
    が無い場合、これらを手動で追加します。

3. ライブラリファイルのパスを確認します。

  1. [リンク]タブを選択します。
  2. [オブジェクト/ライブラリ モジュール] の入力に
    "$(SFHOME)\Library\SophiaFrameworkBrew400JpnVC60.lib"
    
    が無い場合、これを手動で追加します。 BREW SDK のバージョンに応じて SophiaFrameworkBrew400JpnVC60.lib の部分を変更します。 BREW SDK 3.1 の場合は SophiaFrameworkBrew310JpnVC60.lib にします。

8.2.1.2. Visual C++ .NET 2003 の場合

1. メニューから [プロジェクト] -> [プロパティ] を選択します。

2. インクルードファイルのパスを確認します。

  1. 左のリストから [構成プロパティ] -> [C/C++] -> [全般] を選択します。
  2. [追加のインクルード ディレクトリ] の入力に
    $(BREWDIR)\inc,$(SFHOME)\Include 
    
    が無い場合、これを手動で追加します。

3. ライブラリファイルのパスを確認します。

  1. 左のリストから [構成プロパティ] -> [リンカ] -> [入力] を選択します。
  2. [追加の依存ファイル] の入力に
    "$(SFHOME)\Library\SophiaFrameworkBrew400JpnVCNET2003.lib"
    
    が無い場合、これを手動で追加します。 BREW SDK のバージョンに応じて SophiaFrameworkBrew400JpnVCNET2003.lib の部分を変更します。 BREW SDK 3.1 の場合は SophiaFrameworkBrew310JpnVCNET2003.lib にします。

8.2.1.3. Visual C++ 2005 の場合

1. メニューから [プロジェクト] -> [プロパティ] を選択します。

2. インクルードファイルのパスを確認します。

  1. 左のリストから [構成プロパティ] -> [C/C++] -> [全般] を選択します。
  2. [追加のインクルード ディレクトリ] の入力に
    $(BREWDIR)\inc,$(SFHOME)\Include 
    
    が無い場合、これを手動で追加します。

3. ライブラリファイルのパスを確認します。

  1. 左のリストから [構成プロパティ] -> [リンカ] -> [入力] を選択します。
  2. [追加の依存ファイル] の入力に
    "$(SFHOME)\Library\SophiaFrameworkBrew400JpnVC2005.lib"
    
    が無い場合、これを手動で追加します。 BREW SDK のバージョンに応じて SophiaFrameworkBrew400JpnVC2005.lib の部分を変更します。 BREW SDK 3.1 の場合は SophiaFrameworkBrew310JpnVC2005.lib にします。

8.2.1.4. RealView Compilation Tools for BREW 1.2 用メイクファイルの設定

1. RealView Compilation Tools for BREW 1.2 用メイクファイル内の APP_INCLUDES に、 "$(BREWDIR)\inc" -I "$(SF_HOME)\Include" が含まれているか確認します。

       .....

#============================================================================
SF_HOME        =$(SFHOME)
ARM_HOME       =$(ARMHOME)
BREW_HOME      =$(BREWDIR)
TARGET         = ……………………
OBJS           = ………………………………………………………………
APP_INCLUDES   = -I "$(BREWDIR)\inc" -I "$(SF_HOME)\Include"

#-------------------------------------------------------------------------------
# Target file name and type definitions
#-------------------------------------------------------------------------------
      .....

2. リンクするライブラリを確認します。 BREW SDK 4.0 の場合は、SophiaFrameworkBrew400JpnRVCTB12.a、BREW SDK 3.1 の場合は、SophiaFrameworkKDDI310JpnRVCTB12.a を設定されているか確認します。

      .....

#===============================================================================
#                           MODULE SPECIFIC RULES
#===============================================================================

APP_OBJS =  $(OBJS) "$(SF_HOME)\Library\SophiaFrameworkBrew400JpnRVCTB12.a"

      .....

参照: BREW 日本拡張パッケージ C++ ラッパークラスの使用方法

8.2.2. " fatal error C1083: include ファイルを開けません。'AEEKDDI.h' "

8.2.2.1. KDDI 社 BREW 日本拡張パッケージを利用しない無い場合

対処法 : KDDI 社 BREW 日本拡張パッケージを利用しない無い場合は 'AEEKDDI.h'をインクルードしないようにします。 具体的には、下記の手順で KDDI 社 BREW 日本拡張パッケージのヘッダーファイルをインクルードしないようにします。

8.2.2.1.1. Visual C++ 6.0 の場合

1. メニューから [プロジェクト] -> [設定] を選択します。

2. [C/C++]タブを選択します。

3. [プリプロセッサの定義] の項目から TARGET_EXTENSION_KDDI を削除し、OK ボタンを押します。

[Note] TARGET_EXTENSION_KDDI の定義

KDDI 社 BREW 日本拡張パッケージを利用する場合は、TARGET_EXTENSION_KDDI を定義する必要があります。

8.2.2.1.2. Visual C++ 2005 / Visual C++ .NET 2003 の場合

1. メニューから [プロジェクト] -> [プロパティ] を選択します。

2. [C/C++] フォルダから[プリプロセッサ]を選択します。

3. [プリプロセッサの定義] の項目から TARGET_EXTENSION_KDDI を削除し、OK ボタンを押します。

[Note] TARGET_EXTENSION_KDDI の定義

KDDI 社 BREW 日本拡張パッケージを利用する場合は、TARGET_EXTENSION_KDDI を定義する必要があります。

8.2.2.1.3. RealView Compilation Tools for BREW 1.2 用メイクファイルの設定

メイクファイル内に TARGET_EXTENSION_KDDI が定義されていないか確認してください。 定義されている場合は、下記のように -DTARGET_EXTENSION_KDDI をコメントアウトするか削除します。

■ メイクファイルで確認する箇所 :

      .....

#-------------------------------------------------------------------------------
# Target compile time symbol definitions
#
# Tells the SDK source stuffs that we're building a dynamic app.
#-------------------------------------------------------------------------------

# DYNAPP          = -DDYNAMIC_APP
DYNAPP          = -DDYNAMIC_APP #-DTARGET_EXTENSION_KDDI
      .....
[Note] TARGET_EXTENSION_KDDI の定義

KDDI 社 BREW 日本拡張パッケージを利用する場合は、TARGET_EXTENSION_KDDI を定義する必要があります。

[Note] SophiaFramework UNIVERSE AppWizard 利用時の注意事項

KDDI 社 BREW 日本拡張パッケージを利用しない無い場合は、 SophiaFramework UNIVERSE AppWizard の「KDDI 拡張インターフェースを使用する」のチェックを OFF にします(OFF がデフォルト値になっています)。

8.2.2.2. KDDI 社 BREW 日本拡張パッケージを利用する場合

KDDI 社 BREW 日本拡張パッケージと、その C++ ラッパークラスがインストールされているか確認してください。

KDDI 社 BREW 日本拡張パッケージと、その C++ ラッパークラスの使用方法については、 BREW 日本拡張パッケージ C++ ラッパークラスの使用方法を参照してください。

[Note] SophiaFramework UNIVERSE AppWizard 利用時の注意事項

KDDI 社 BREW 日本拡張パッケージを利用する場合は、 SophiaFramework UNIVERSE AppWizard の「KDDI 拡張インターフェースを使用する」のチェックを ON にします(OFF がデフォルト値になっています)。

リンクするライブラリファイルの設定は手動で行う必要があります。 詳細は、BREW 日本拡張パッケージ C++ ラッパークラスの使用方法を参照してください。

8.2.3. " fatal error C1083: include ファイルを開けません。'<アプリ名>.bid': No such file or directory "

対処法 : <アプリ名>.bid ファイルが、 <アプレットディレクトリ>\<アプリ名> のフォルダに格納されているか確認します。

[Note] アプレットディレクトリとは

アプレットディレクトリとは、BREW シミュレータ用アプリを置くフォルダです。

8.2.4. " メモリ容量を節約するためにこのアプリケーションはアンロードされました。新しいバージョンをダウンロードしてください。"

対処法 : <アプリ名>.dll ファイルが、 <アプレットディレクトリ>\<アプリ名> のフォルダに格納されているか確認します。

[Note] アプレットディレクトリとは

アプレットディレクトリとは、BREW シミュレータ用アプリを置くフォルダです。

8.2.5. "Disabled. This app was disabled to save space. Would you like to restore it now?"

対処法 : <アプリ名>.dll ファイルが、 <アプレットディレクトリ>\<アプリ名> のフォルダに格納されているか確認します。

[Note] アプレットディレクトリとは

アプレットディレクトリとは、BREW シミュレータ用アプリを置くフォルダです。

8.2.6. "プロジェクトが開いていない可能性があります"

症状 : ツールバーにある [ SF MAK ] アイコンをクリックして、メイク ファイル helloworld.mak を更新しようとしたときに、 「プロジェクトが開いていない可能性があります」というエラーが表示されます。

対処法 : プロジェクト内の .hpp および .cpp ファイルを開けてみてください。 この操作により、メイク ファイルの更新が可能となります。

8.2.7. " non-POD object cannot be passed as '...' argument "

対処法 : SFXHelper 関数や BREW 関数を正しく利用しているか確認します。

SophiaFramework 逆引きコード集 : modファイルが作成できない

8.2.8. "Deprecated command syntax will not be supported in future versions. Use -output to specify the output file.Finished: 0 information, 1 warning and 0 error messages."

対処法 : 古いリンカオプションを指定したときに表示される警告メッセージです。アプリの動作に問題はありません。

この警告メッセージが出力されないようにするには、メイクファイル内の

      .....

$(HEXTOOL)  $(TARGET).$(EXETYPE) $(BINFORMAT) $(TARGET).$(MODULE)
      .....

      .....

$(HEXTOOL)  $(TARGET).$(EXETYPE) $(BINFORMAT) -output $(TARGET).$(MODULE)
      .....

に変更します。

8.2.9. "LINK : warning LNK4098: defaultlib 'LIBCMTD' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。"

対処法 : アプリの動作に問題はありません。このメッセージは SophiaFramework UNIVERSE のライブラリが Release ビルドであるのに、 アプリ側が Debug ビルドであるときに表示されます。

この警告メッセージを消すには、アプリ側も Release ビルドにします。

8.2.10. RealView Compilation Tools for BREW のリンクエラー

8.2.10.1. 対処法 1. Build 848 の適用

RealView Compilation Tools for BREW 1.2 の Build 848 を適用します。 入手先 : ARM 社 ADS 1.2: Build 848 patch for Windows

[Note] RealView Compilation Tools for BREW のビルドバージョン

armcpp コマンドで RealView Compilation Tools for BREW のビルドバージョンが確認できます。

8.2.10.2. 対処法 2. コンパイラ最適化オプションの変更

この対処法は -g- オプションでビルド時、 SFXStreamReaderSFXStreamWriterSFXAnsiStringStreamReader などのクラスに関して リンクエラーが発生する場合などに有効であることが確認されています。

RealView Compilation Tools for BREW 1.2 用メイクファイルのコンパイラ最適化オプションを下記のように変更します。

[Note] 注意
-Ospace-Otime に変更します。

■ 変更前

      .....

#-------------------------------------------------------------------------------
# Compiler optimization options
#-------------------------------------------------------------------------------

OPT = -Ospace -O2               # Full compiler optimization for space

      .....

■ 変更後

      .....

#-------------------------------------------------------------------------------
# Compiler optimization options
#-------------------------------------------------------------------------------

# OPT = -Ospace -O2               # Full compiler optimization for space
OPT = -Otime -O2

      .....

[Tip] Tip

SophiaFramework UNIVERSE のライブラリは、-Ospace ではなく -Otime の最適化オプションでビルドされています。

これは、-Ospace よりも -Otime の最適化オプションの方が、ビルド後アプリのサイズが最適化されるためです。

8.2.10.3. 対処法 3. リンクするライブラリの確認

以下のようなメッセージがでる場合は、リンクする RealView Compilation Tools for BREW 1.2 用ライブラリが正しく設定されていない可能性があります。

NMAKE : fatal error U1073: '"C:\Program Files\Sophia Cradle\SophiaFramework\5.3\Library\**********"' のビルド方法が指定されていません。
Stop.
ツールは次のコードを返しました: 0

■ メイクファイルで確認する箇所(BREW SDK 4.0 利用の場合) :

      .....
#===============================================================================
#                           MODULE SPECIFIC RULES
#===============================================================================

APP_OBJS =  $(OBJS) "$(SF_HOME)\Library\SophiaFrameworkBrew400JpnRVCTB12.a"

      .....

その他 : 利用している BREW SDK のバージョンにあった RealView Compilation Tools for BREW 1.2 用ライブラリをリンクするようにしてください。 BREW SDK のバージョンは 環境変数 BREWDIR に設定されているパスで確認できます。 BREW SDK 3.1 をお使いの場合は、SophiaFrameworkBrew310JpnRVCTB12.a をリンクするようにしてください。

KDDI 社 BREW 日本拡張パッケージを利用する場合は、そのライブラリファイルの設定を手動で行う必要があります。 詳細は、BREW 日本拡張パッケージ C++ ラッパークラスの使用方法を参照してください。

8.2.11. RealView Compilation Tools for BREW のリンク時警告

症状 : RealView Compilation Tools for BREW 1.2 でビルドしようとすると、リンク時に

Warning: L6318W: SophiaFrameworkBrew400JpnRVCTB12.a(i.Initialize__9SFCAppletFPFv_P10SFCInvokerRC13SFXAnsiString)
contains branch to a non-code symbol <Anonymous Symbol>.

という警告メッセージが発生します。

対処法 : BREW SDK 4.0 の場合だけ表示されますが、アプリの動作に問題はありません。

8.2.12. KDDI 社 BREW 日本拡張パッケージ利用時のコンパイルエラー

症状: KDDI 社 BREW 日本拡張パッケージに含まれる IKDDI○○○ の C++ ラッパークラス SFBKDDI○○○ を利用したいのですが、 コンパイルしようとすると、以下のようなエラーが発生します。

■ Microsoft Visual C++ 6.0 の場合: 

... error C2065: 'SFBKDDI○○○○○○' : 定義されていない識別子です。 
... error C2146: 構文エラー : ...
...

■ RealView Compilation Tools for BREW の場合: 

line *** : Error: C2225W: declaration lacks type/storage-class (assuming 'int'): 'SFBKDDI○○○○○○' 

対処法: メイクファイル内に TARGET_EXTENSION_KDDI が定義されているか確認してください。 TARGET_EXTENSION_KDDI の具体的な定義方法は、 TARGET_EXTENSION_KDDI の定義を参照してください。

8.2.13. KDDI 社 BREW 日本拡張パッケージ利用時のリンクエラー

症状: KDDI 社 BREW 日本拡張パッケージに含まれる IKDDI○○○ の C++ ラッパークラス SFBKDDI○○○ を利用したいのですが、 リンクしようとすると、以下のようなエラーが発生します。

■ Microsoft Visual C++ 6.0 の場合: 

*********.obj : error LNK2001: 外部シンボル "public: static class SFXBrewPointer<class SFBKDDI○○○> __cdecl 
SFBKDDI○○○::NewInstance(long *)" (?NewInstance@SFBKDDI○○○@@SA?AV?$SFXBrewPointer@VSFBKDDI○○○@@@@PAJ@Z)" 
は未解決です

*********.dll : fatal error LNK1120: 外部参照 1 が未解決です。

link.exe の実行エラー

■ RealView Compilation Tools for BREW の場合: 

Error: L6218E: Undefined symbol static SFBKDDI○○○::NewInstance(long*) (referred from ********.o).

対処法: 利用している BREW SDK のバージョンにあった KDDI 社 BREW 日本拡張パッケージ C++ ラッパークラスライブラリをリンクしているか確認してください。 BREW SDK のバージョンは、 環境変数 BREWDIR に設定されているパスで確認できます。

KDDI 社 BREW 日本拡張パッケージ C++ ラッパークラスライブラリの具体的な設定方法は、 BREW 日本拡張パッケージ C++ ラッパークラスライブラリの設定を参照してください。