リリース情報


34.8 第 12 章 Solaris アプリケーションの構築

34.8.1 SPARCompiler C++

C/C++ アプリケーション実行時 および Solaris 上での SQL プロシージャー実行時の問題

Sun WorkShop C/C++ コンパイラーを使用中に、実行可能なプログラムで以下のようなエラーを受け取るといった 問題が発生する場合があります。

  1. 1 行目に構文エラー: 予期しない `('
  2. ksh: <アプリケーション名>: 実行できません (アプリケーション名はコンパイル済み実行可能プログラム)

libdb2.so にリンクする際、コンパイラーが有効な実行可能プログラムを生成しないといった問題が起きる場合があります。 この問題を解決するために考えられることは、コンパイル、およびリンク・コマンドに以下のコンパイラー・オプションを追加します:

      -xarch=v8plusa

たとえば、サンプル・アプリケーションの dynamic.sqc をコンパイルしている場合:

      embprep dynamic sample
   embprep utilemb sample
   cc -c utilemb.c -xarch=v8plusa -I/export/home/db2inst1/sqllib/include
   cc -o dynamic dynamic.c utilemb.o -xarch=v8plusa -I/export/home/db2inst1/sqllib/include \
      -L/export/home/db2inst1/sqllib/lib -R/export/home/db2inst1/sqllib/lib -l db2

注:

  1. Solaris 上で SQL プロシージャーをお使いで、さらに DB2_SQLROUTINE_COMPILE_COMMAND の プロファイル変数を使用している場合、上記のコンパイラー・オプションが含まれているか確認する。 デフォルトのコンパイラー・コマンドにはこのオプションが含まれています:

          db2set DB2_SQLROUTINE_COMPILE_COMMAND="cc -# -Kpic  -xarch=v8plusa -I$HOME/sqllib/include \
          SQLROUTINE_FILENAME.c -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -R$HOME/sqllib/lib -ldb2
    

  2. Solaris で 64-bit SQL プロシージャーをコンパイルするには、-xarch=v8plusa オプションを 使用し、-xarch=v9 オプションを上のコマンドに追加する。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]