WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Compilación de una extensión definida por el usuario en C

Compilar extensiones definidas por el usuario en C para todos los sistemas operativos soportados.

Antes de empezar:

Si crea sus propios nodos definidos por el usuario, analizadores y salidas de usuario en C, compílelos en el sistema operativo en el que se ejecuta el intermediario de destino. Se proporcionan ejemplos para ambos nodos y analizadores y éstos se describe en Archivos de nodo de ejemplo y Archivos de analizador de ejemplo. Utilice las instrucciones siguientes para compilar los ejemplos. Si desea crea sus propias extensiones, consulte los temas siguientes:

Estas instrucciones utilizan los nombres de archivo de los ejemplos proporcionados. Si está compilando sus propias extensiones definidas por el usuario, sustituya estos nombres por sus propios nombres de archivo.

Cuando compile una extensión definida por el usuario escrita en C, necesita un compilador compatible. Para obtener detalles sobre los compiladores soportados, consulte Soporte de software opcional.

Archivos de cabecera

Los archivos de cabecera siguientes definen las interfaces en C:
BipCni.h
Nodos de proceso de mensajes
BipCpi.h
Analizadores de mensajes
BipCci.h
Interfaces comunes a nodos y analizadores
BipCos.h
Definiciones específicas de plataforma

Compilación

Compile el origen para la extensión definida por el usuario en cada una de las plataformas soportadas para crear el archivo ejecutable que el intermediario invoca para implementar la extensión definida por el usuario. En los sistemas Linux y UNIX y z/OS, este archivo es un archivo de biblioteca de implementación (LIL); en los sistemas Windows, es un archivo de biblioteca de carga dinámica (DLL).

Las bibliotecas que se crean para incluir los nodos definidos por el usuario o analizadores deben tener la extensión .lil en todos los sistemas operativos para que el intermediario los pueda cargar. Las bibliotecas que contienen salidas de usuario deben tener la extensión .lel en todos los sistemas operativos. En los ejemplos de este tema se muestran bibliotecas con la extensión .lil.

Consulte la documentación del compilador que está utilizando para obtener detalles completos de las opciones de compilación y enlace disponibles que pueden ser necesarias para los programas.

Vaya al directorio en el que está ubicado el código fuente de la extensión definida por el usuario, y siga las instrucciones para su sistema operativo:

Compilación en AIX

Cuando compile una extensión definida por el usuario que está escrita en C, utilice un compilador soportado.

Las instrucciones siguientes son para compilar una extensión para un grupo de ejecución de 64 bits; no se soportan grupos de ejecución de 32 bits.

xlc_r -q64 \
   -I. \
   -I/dir_instalación/include/plugin \
   -c SwitchNode.c \
   -o SwitchNode.o

xlc_r -q64 \
   -I. \
   -I/dir_instalación/include/plugin \
   -c TransformNode.c \
   -o TransformNode.o

xlc_r -q64 \
   -I. \
   -I/dir_instalación/include/plugin \
   -c BipSampPluginUtil.c \
   -o BipSampPluginUtil.o

xlc_r -q64 \
   -I. \
   -I/dir_instalación/include/plugin \
   -c Common.c \
   -o Common.o

xlc_r -q64 \
   -I. \
   -I/dir_instalación/include/plugin \
   -c NodeFactory.c \
   -o NodeFactory.o

xlc_r -q64 \
      -qmkshrobj \
      -bM:SRE \
      -bexpall \
      -bnoentry \
      -o SwitchNode.lil SwitchNode.o \
         BipSampPluginUtil.o Common.o NodeFactory.o \
      -L /dir_instalación/lib \
      -l imbdfplg

chmod a+r SwitchNode.lil

Compilación en HP-Itanium

Cuando compile una extensión definida por el usuario que está escrita en C, utilice un compilador soportado.

Las instrucciones siguientes son para compilar una extensión para un grupo de ejecución de 64 bits; no se soportan grupos de ejecución de 32 bits.

cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -c BipSampPluginUtil.c \
   -o dir_salida/BipSampPluginUtil.o

cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -c Common.c \
   -o dir_salida/Common.o

cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -c NodeFactory.c \
   -o dir_salida/NodeFactory.o

cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -c SwitchNode.c \
   -o dir_salida/SwitchNode.o

cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -c TransformNode.c \
   -o dir_salida/TransformNode.o


ld -b \
   -o dir_salida/SwitchNode.lil \
   dir_salida/BipSampPluginUtil.o \
   dir_salida/Common.o \
   dir_salida/NodeFactory.o \
   dir_salida/SwitchNode.o \
   dir_salida/TransformNode.o \
   -L dir_instalación/lib \
   -L dir_instalación/xml4c/lib \
   -L dir_instalación/merant/lib \
   -L dir_instalación/jre16/lib/IA64N\
   -L dir_instalación/jre16/lib/IA64N/server \
   -l imbdfplg

chmod a+r dir_salida/SwitchNode.lil

Compilación en Linux

Cuando compile una extensión definida por el usuario que está escrita en C, utilice un compilador soportado.

Cuando compile programas en Linux en POWER, sustituya la opción -fpic por -fPIC si desea utilizar enlaces dinámicos y evitar límites en el tamaño de la tabla de desplazamiento global.

Las instrucciones siguientes son para compilar una extensión de un grupo de ejecución de 64 bits en Linux en x86-64, Linux en POWER i Linux en System z. Los grupos de ejecución de 32 bits no están soportados en estas plataformas. Para compilar la extensión de un grupo de ejecución de 32 bits en Linux en x86, sustituya -m64 por -m32 en los ejemplos de compilación y enlace. Para compilar la extensión de Linux en POWER incluya el parámetro -O2 en los ejemplos de compilación y enlace.

g++ -c -m64 -Wall -Wno-format-y2k -fpic \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -DLINUX -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
   TransformNode.c

g++ -c -m64 -Wall -Wno-format-y2k -fpic \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -DLINUX -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
   SwitchNode.c 

g++ -c -m64 -Wall -Wno-format-y2k -fpic \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -DLINUX -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
   BipSampPluginUtil.c 

g++ -c -m64 -Wall -Wno-format-y2k -fpic \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -DLINUX  -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
   Common.c 

g++ -c -m64 -Wall -Wno-format-y2k -fpic \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -DLINUX -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
   NodeFactory.c

g++ -m64 -o samples.lil \
   TransformNode.o \
   SwitchNode.o \
   BipSampPluginUtil.o \
   Common.o NodeFactory.o \
   -shared -lc -lnsl -ldl \
   -L/dir_instalación/lib -limbdfplg 

Estos mandatos crean el archivo samples.lil que proporciona los objetos TransformNode y SwitchNode.

Compilación en Solaris

Cuando compile una extensión definida por el usuario que está escrita en C, utilice un compilador soportado.

Las instrucciones siguientes son para compilar una extensión para un grupo de ejecución de 64 bits en Solaris en SPARC; no se da soporte a grupos de ejecución de 32 bits. Para compilar la extensión de un grupo de ejecución predeterminado de 64 bits en Solaris en x86-64, sustituya -xarch=v9 por -xarch=amd64 en los ejemplos de compilación; no se da soporte a grupos de ejecución de 32 bits.

cc -xarch=v9 -mt \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -c SwitchNode.c \
   -o dir_salida/SwitchNode.o

cc -xarch=v9 -mt \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -c TransformNode.c \
   -o dir_salida/TransformNode.o

cc -xarch=v9 -mt \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -c BipSampPluginUtil.c \
   -o dir_salida/BipSampPluginUtil.o

cc -xarch=v9 -mt \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -c NodeFactory.c \
   -o dir_salida/NodeFactory.o

cc -xarch=v9 -mt \
   -I. \
   -I/dir_instalación/include \
   -I/dir_instalación/include/plugin \
   -c Common.c \
   -o dir_salida/Common.o

cc -xarch=v9  -xcode=pic32 -mt -G \
   -o dir_salida/SwitchNode.lil \
      dir_salida/SwitchNode.o \
      dir_salida/BipSampPluginUtil.o \
      dir_salida/NodeFactory.o \
      dir_salida/Common.o \
   -L /dir_instalación/lib \
   -l imbdfplg

chmod a+r dir_salida/SwitchNode.lil

Compilación en Windows

Cuando compile una extensión definida por el usuario que está escrita en C, utilice un compilador soportado.

Asegúrese de incluir un espacio entre SwitchNode.c y BipSampPluginUtil.c, y también entre -link y /DLL.

Entre el mandato como una sola línea de entrada; en el ejemplo siguiente se han partido las líneas para facilitar su lectura.

cl /VERBOSE /LD /MD /Zi /EHsc /I. 
   /Idir_instalación\include\plugin 
   SwitchNode.c BipSampPluginUtil.c Common.c 
   NodeFactory.c TransformNode.c 
   -link /DLL dir_instalación\lib\imbdfplg.lib 
   /OUT:SwitchNode.lil

Si ha establecido correctamente la variable de entorno LIB, no tiene que especificar las vías de acceso completas a los archivos LIB.

Compilación en z/OS

Cuando compile una extensión definida por el usuario que está escrita en C, utilice un compilador soportado.

Obligue a que su enlace utilice el preenlazador o el enlazador estableciendo la variable _CC_STEPS en -1:
export _CC_STEPS=-1
De forma alternativa, añada estas dos líneas al archivo make (makefile) para exportarlo:
_CC_STEPS=-1
.EXPORT : _CC_STEPS

Para crear compilaciones optimizadas, utilice -2 en lugar de -g en los mandatos siguientes:

cc -c \
 -Wc,LP64 -g -W0,langlvl\(extended\),EXPORTALL,float\ieee\) \
 -Wc,xplink \
 -W0,LIST\(./SwitchNode.lst\) \
 -I. -I${dir_instalación}/include \
 -I${dir_instalación}/include/plugin \
 -I${dir_instalación}/sample/include \
 -I${dir_instalación}/sample/plugin \
 -o ./SwitchNode.o ./SwitchNode.c
cc -c \
 -Wc,LP64 -g -W0,langlvl\(extended\),EXPORTALL,float\ieee\) \
 -Wc,xplink \
 -W0,LIST\(./TransformNode.lst\) \
 -I. -I${dir_instalación}/include \
 -I${dir_instalación}/include/plugin \
 -I${dir_instalación}/sample/include \
 -I${dir_instalación}/sample/plugin \
 -o ./SwitchNode.o ./TransformNode.c
cc -c \
 -Wc,LP64 -g -W0,langlvl\(extended\),EXPORTALL,float\ieee\) \
 -Wc,xplink \
 -W0,LIST\(./BipSampPluginUtil.lst\) \
 -I. -I${dir_instalación}/include \
 -I${dir_instalación}/include/plugin \
 -I${dir_instalación}/sample/include \
 -I${dir_instalación}/sample/plugin \
 -o ./BipSampPluginUtil.o ./BipSampPluginUtil.c
cc -c \
 -Wc,LP64 -g -W0,langlvl\(extended\),EXPORTALL,float\ieee\) \
 -Wc,xplink \
 -W0,LIST\(./Common.lst\) \
 -I. -I${dir_instalación}/include \
 -I${dir_instalación}/include/plugin \
 -I${dir_instalación}/sample/include \
 -I${dir_instalación}/sample/plugin \
 -o ./Common.o ./Common.c
cc -c \
  -Wc,LP64 -g -W0,langlvl\(extended\),EXPORTALL,float\ieee\) \
 -Wc,xplink \
 -W0,LIST\(./NodeFactory.lst\) \
 -I. -I${dir_instalación}/include \
 -I${dir_instalación}/include/plugin \
 -I${dir_instalación}/sample/include \
 -I${dir_instalación}/sample/plugin \
 -o ./NodeFactory.o ./NodeFactory.c
cc \
 -Wl,DLL,LP64 -g -Wl,p,map -Wl,LIST=ALL,MAP,XREF,REUS=RENT \
 -Wl,xplink \
 -o ./SwitchNode.lil ./SwitchNode.o ./BipSampPluginUtil.o \
 ./Common.o ./NodeFactory.o \
 ${dir_instalación}/lib/libimbdfplg.x

Ejecute el siguiente mandato para establecer los permisos de archivos de la extensión definida por el usuario en lectura para el grupo y ejecutable:

chmod a+rx {dir_salida}/SwitchNode.lil
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:28


Tema de tareaTema de tarea | Versión 8.0.0.5 | as10000_