WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Compilando uma Extensão Definida pelo Usuário em C

Compile extensões definidas pelo usuário em C para todos os sistemas operacionais suportados.

Antes de começar:

Se você criar seus próprios nós definidos pelo usuário, analisadores e saídas de usuário em C, compile-os no sistema operacional em que o broker de destino está sendo executado. As amostras são fornecidas para nós e analisadores e são descritas em Arquivos de Nós de Amostra e Arquivos de Analisadores de Amostra. Utilize as seguintes instruções para compilar as amostras. Se desejar criar suas próprias extensões, consulte os seguintes tópicos:

Estas instruções utilizam os nomes de arquivos das amostras fornecidas. Se você estiver compilando suas próprias extensões definidas pelo usuário, substitua esses nomes de arquivos pelos seus próprios nomes de arquivos.

Ao compilar uma extensão definida pelo usuário que é gravada em C, é necessário ter um compilador compatível. Para obter detalhes de compiladores suportados, consulte Suporte Opcional ao Software.

Arquivos de Cabeçalho

Os arquivos de cabeçalho a seguir definem as interfaces de C:
BipCni.h
Nós de processamento de mensagem
BipCpi.h
Analisadores de mensagem
BipCci.h
Interfaces comuns a nós e analisadores
BipCos.h
Definições específicas de plataforma

Compilando

Compile a origem para a extensão definida pelo usuário em cada um dos sistemas operacionais suportados para criar o arquivo executável que o broker chama para implementar a extensão definida pelo usuário. Nos sistemas Linux, UNIX e z/OS, este arquivo é um arquivo de biblioteca de implementação carregável (LIL); em sistemas Windows, é um arquivo da biblioteca de carregamento dinâmico (DLL).

As bibliotecas criadas para conter nós definidos pelo usuário ou analisadores devem ter a extensão .lil em todos os sistemas operacionais, para que o broker possa carregá-los. As bibliotecas que contêm saídas de usuário devem ter a extensão .lel em todos os sistemas operacionais. Os exemplos deste tópico mostram as bibliotecas com a extensão .lil

Consulte a documentação para o compilador que está sendo utilizado para obter detalhes completos de opções de compilação e link disponíveis que podem ser necessárias para seus programas.

Navegue para o diretório onde seu código-fonte de extensão definido pelo usuário está localizado e siga as instruções para o sistema operacional:

Compilando no AIX

Ao compilar uma extensão definida pelo usuário que é gravada em C, utilize um compilador suportado.

As instruções a seguir servem para compilar uma extensão para um grupo de execução de 64 bits; os grupos de execução de 32 bits não são suportados.

xlc_r -q64 \
   -I. \
   -I/install_dir/include/plugin \
   -c SwitchNode.c \
   -o SwitchNode.o

xlc_r -q64 \
   -I. \
   -I/install_dir/include/plugin \
   -c TransformNode.c \
   -o TransformNode.o

xlc_r -q64 \
   -I. \
   -I/install_dir/include/plugin \
   -c BipSampPluginUtil.c \
   -o BipSampPluginUtil.o

xlc_r -q64 \
   -I. \
   -I/install_dir/include/plugin \
   -c Common.c \
   -o Common.o

xlc_r -q64 \
   -I. \
   -I/install_dir/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 /install_dir/lib \
      -l imbdfplg

chmod a+r SwitchNode.lil

Compilando no HP-Itanium

Ao compilar uma extensão definida pelo usuário que é gravada em C, utilize um compilador suportado.

As instruções a seguir servem para compilar uma extensão para um grupo de execução de 64 bits; os grupos de execução de 32 bits não são suportados.

cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae \
   -I. \
   -I/install_dir/include \
   -I/install_dir/include/plugin \
   -c BipSampPluginUtil.c \
   -o output_dir/BipSampPluginUtil.o

cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae \
   -I. \
   -I/install_dir/include \
   -I/install_dir/include/plugin \
   -c Common.c \
   -o output_dir/Common.o

cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae \
   -I. \
   -I/install_dir/include \
   -I/install_dir/include/plugin \
   -c NodeFactory.c \
   -o output_dir/NodeFactory.o

cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae \
   -I. \
   -I/install_dir/include \
   -I/install_dir/include/plugin \
   -c SwitchNode.c \
   -o output_dir/SwitchNode.o

cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae \
   -I. \
   -I/install_dir/include \
   -I/install_dir/include/plugin \
   -c TransformNode.c \
   -o output_dir/TransformNode.o


ld -b \
   -o output_dir/SwitchNode.lil \
   output_dir/BipSampPluginUtil.o \
   output_dir/Common.o \
   output_dir/NodeFactory.o \
   output_dir/SwitchNode.o \
   output_dir/TransformNode.o \
   -L install_dir/lib \
   -L install_dir/xml4c/lib \
   -L install_dir/merant/lib \
   -L install_dir/jre16/lib/IA64N\
   -L install_dir/jre16/lib/IA64N/server \
   -l imbdfplg

chmod a+r output_dir/SwitchNode.lil

Compilando no Linux

Ao compilar uma extensão definida pelo usuário que é gravada em C, utilize um compilador suportado.

Ao compilar programa no Linux em POWER®, substitua a opção -fpic por -fPIC se desejar utilizar o efetuar o link dinâmico e evitar qualquer limite no tamanho da tabela de deslocamento global.

As instruções a seguir são para compilar uma extensão para um grupo de execução de 64 bits no Linux em x86-64, Linux em POWER e Linux em System z®. Grupos de execução de 32 bits não são suportados nessas plataformas. Para compilar a extensão para um grupo de execução de 32 bits no Linux em x86, substitua -m64 por -m32 nos exemplos de compilação e de link. Para compilar a extensão para o Linux em POWER, inclua o parâmetro -O2 nos exemplos de compilação e de link.

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

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

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

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

g++ -c -m64 -Wall -Wno-format-y2k -fpic \
   -I. \
   -I/install_dir/include \
   -I/install_dir/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/install_dir/lib -limbdfplg 

Estes comandos criam o arquivo samples.lil que fornece objetos TransformNode e SwitchNode.

Compilando no Solaris

Ao compilar uma extensão definida pelo usuário que é gravada em C, utilize um compilador suportado.

As instruções a seguir são para compilar uma extensão para um grupo de execução de 64 bits no Solaris em SPARC; grupos de execução de 32 bits não são suportados. Para compilar a extensão para um grupo de execução de 64 bits padrão no Solaris em x86-64, substitua -xarch=v9 por -xarch=amd64 nos exemplos de compilação; grupos de execução de 32 bits não são suportados.

cc -xarch=v9 -mt \
   -I. \
   -I/install_dir/include \
   -I/install_dir/include/plugin \
   -c SwitchNode.c \
   -o output_dir/SwitchNode.o

cc -xarch=v9 -mt \
   -I. \
   -I/install_dir/include \
   -I/install_dir/include/plugin \
   -c TransformNode.c \
   -o output_dir/TransformNode.o

cc -xarch=v9 -mt \
   -I. \
   -I/install_dir/include \
   -I/install_dir/include/plugin \
   -c BipSampPluginUtil.c \
   -o output_dir/BipSampPluginUtil.o

cc -xarch=v9 -mt \
   -I. \
   -I/install_dir/include \
   -I/install_dir/include/plugin \
   -c NodeFactory.c \
   -o output_dir/NodeFactory.o

cc -xarch=v9 -mt \
   -I. \
   -I/install_dir/include \
   -I/install_dir/include/plugin \
   -c Common.c \
   -o output_dir/Common.o

cc -xarch=v9  -xcode=pic32 -mt -G \
   -o output_dir/SwitchNode.lil \
      output_dir/SwitchNode.o \
      output_dir/BipSampPluginUtil.o \
      output_dir/NodeFactory.o \
      output_dir/Common.o \
   -L /install_dir/lib \
   -l imbdfplg

chmod a+r output_dir/SwitchNode.lil

Compilando no Windows

Ao compilar uma extensão definida pelo usuário que é gravada em C, utilize um compilador suportado.

Inclua um espaço entre SwitchNode.c e BipSampPluginUtil.c, e também entre -link e /DLL.

Insira o comando como uma única linha de entrada; no exemplo a seguir, as linhas foram divididas para melhorar a capacidade de leitura.

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

Se você configurou corretamente a variável de ambiente LIB, não precisará especificar os caminhos completos para os arquivos LIB.

Compilando no z/OS

Ao compilar uma extensão definida pelo usuário que é gravada em C, utilize um compilador suportado.

Force seu link a utilizar um pré-linker ou linker, configurando a variável _CC_STEPS como -1:
export _CC_STEPS=-1
Como alternativa, inclua estas duas linhas em seu arquivo pronto para exportá-lo:
_CC_STEPS=-1
.EXPORT : _CC_STEPS

Para criar construções otimizadas, utilize -2 no lugar de -g nos seguintes comandos:

cc -c \
 -Wc,LP64 -g -W0,langlvl\(extended\),EXPORTALL,float\ieee\) \
 -Wc,xplink \
 -W0,LIST\(./SwitchNode.lst\) \
 -I. -I${install_dir}/include \
 -I${install_dir}/include/plugin \
 -I${install_dir}/sample/include \
 -I${install_dir}/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${install_dir}/include \
 -I${install_dir}/include/plugin \
 -I${install_dir}/sample/include \
 -I${install_dir}/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${install_dir}/include \
 -I${install_dir}/include/plugin \
 -I${install_dir}/sample/include \
 -I${install_dir}/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${install_dir}/include \
 -I${install_dir}/include/plugin \
 -I${install_dir}/sample/include \
 -I${install_dir}/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${install_dir}/include \
 -I${install_dir}/include/plugin \
 -I${install_dir}/sample/include \
 -I${install_dir}/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 \
 ${install_dir}/lib/libimbdfplg.x

Execute o seguinte comando para configurar as permissões do arquivo da extensão definida pelo usuário para leitura de grupo e para ser executável:

chmod a+rx {output_dir}/SwitchNode.lil
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

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

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:30:27


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | as10000_