Notas del release

34.8 Capítulo 12. Creación de aplicaciones Solaris

34.8.1 SPARCompiler C++

Problemas con la ejecución de aplicaciones C/C++ y de procedimientos de SQL en Solaris

Cuando se utiliza Sun WorkShop Compiler C/C++, si tiene problemas con el ejecutable en el que recibe errores como los siguientes:

  1. error de sintaxis en la línea 1: `(' inesperado
  2. ksh: <nombre aplicación>: no puede ejecutarse (donde nombre aplicación es el nombre del ejecutable compilado)

puede tener el problema de que el compilador no produce ejecutables válidos cuando se enlaza con libdb2.so. Una sugerencia para solucionar este problema consiste en añadir la opción de compilador siguiente a los mandatos de compilación y enlace:

   -xarch=v8plusa

por ejemplo, cuando compila la aplicación de ejemplo, 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

Notas:

  1. Si está utilizando Procedimientos de SQL en Solaris y utiliza su propia serie de compilación mediante la variable de perfil DB2_SQLROUTINE_COMPILE_COMMAND, asegúrese de incluir la opción de compilador indicada anteriormente. El mandato de compilador por omisión incluye esta opción:
          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. Para compilar procedimientos de SQL de 64 bits en Solaris, extraiga la opción -xarch=v8plusa y añada la opción -xarch=v9 a los mandatos anteriores.


[ Principio de página | Página anterior | Página siguiente ]