版次注意事項


34.8 第 12 章 開發 Solaris 應用程式

34.8.1 SPARCompiler C++

於 Solaris 執行 C/C++ 應用程式和 SQL 程序的問題

使用 Sun WorkShop Compiler C/C++,如果您碰到可執行檔接收到下列錯誤訊息時:

  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 位元 SQL 程序,取消 -xarch=v8plusa 選項,並將 -xarch=v9 選項新增到上面的指令。


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]