Configure seu ambiente de desenvolvimento Linux ou Windows para enviar e receber mensagens com o SDK C++ V1.x.x do ApsaraMQ for RocketMQ.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma conta Alibaba Cloud com o ApsaraMQ for RocketMQ ativado
Tópicos e grupos de consumidores criados no console do ApsaraMQ for RocketMQ
Uma instância do Elastic Compute Service (ECS) para implantar sua aplicação
Este guia abrange apenas o SDK C++ V1.x.x. As tags de mensagem são definidas pela aplicação e não exigem configuração no console.
Baixar o SDK
O SDK C++ é compatível com Windows e Linux e oferece interfaces idênticas. No Linux, há suporte para CentOS 6 (RHEL 6) e CentOS 7 (RHEL 7).
Baixe o pacote do SDK na página de notas de versão.
Conteúdo do pacote
Após extrair o pacote, o diretório conterá os seguintes itens:
|
Diretório ou arquivo |
Descrição |
|
|
Projeto do Visual Studio pré-configurado (apenas Windows) |
|
|
Código de exemplo para envio e consumo de mensagens normais, unidirecionais e ordenadas. No Linux, inclui um |
|
|
Arquivos de cabeçalho da aplicação |
|
|
Bibliotecas estáticas e compartilhadas (veja detalhes abaixo) |
|
|
Guia de configuração do ambiente do SDK e perguntas frequentes |
|
|
Correções de bugs e novos recursos por versão |
Arquivos de biblioteca
Linux
|
Caminho |
Arquivo |
Tipo |
|
|
|
Biblioteca estática com Boost vinculado estaticamente |
|
|
|
Biblioteca compartilhada (requer bibliotecas compartilhadas do Boost) |
Windows
|
Caminho |
Arquivo |
Descrição |
|
|
DLL do SDK |
Biblioteca dinâmica de 64 bits |
|
|
|
Runtime do Visual C++ 2015. Instale este componente caso o Visual Studio 2015 não esteja presente |
Configurar o ambiente Linux
Desde 2 de dezembro de 2016, o SDK C++ para Linux depende do Boost 1.62.0 para reduzir o uso da CPU e melhorar o throughput.
O SDK requer as seguintes bibliotecas do Boost:
|
Biblioteca |
Obrigatória |
|
|
Sim |
|
|
Sim |
|
|
Sim |
|
|
Sim |
Escolha uma das estratégias de vinculação a seguir conforme os requisitos do seu projeto.
Opção 1: Vinculação estática (recomendada)
Use esta opção se o projeto ainda não depender do Boost. A biblioteca estática em lib/lib-boost-static/libonsclient4cpp.a agrupa todas as quatro bibliotecas do Boost e elimina a necessidade de instalação separada.
Compilar com o Makefile incluído
cd aliyun-mq-linux-cpp-sdk # Root of the extracted SDK
cd example # Edit the example file to set your topic and access key
make static=1
Uma compilação totalmente estática exige libstdc++.a, libpthread.a e outras bibliotecas estáticas relacionadas. Por padrão, a maioria das distribuições fornece o libstdc++ sem a biblioteca estática. Instale as bibliotecas estáticas necessárias usando yum ou apt-get.
Uma compilação totalmente estática pode gerar o seguinte aviso:
warning: Using 'gethostbyaddr' in statically linked applications requires at runtime
the shared libraries from the glibc version used for linking
Abordagem recomendada: vincular apenas o SDK estaticamente
Para evitar esse aviso, vincule a libonsclient4cpp estaticamente e mantenha as bibliotecas do sistema vinculadas dinamicamente:
g++ -ggdb -Wall -O3 -I../include \
../example/ProducerExampleForEx.cpp \
-Wl,-static -lonsclient4cpp -L../lib/lib-boost-static/ \
-Wl,-Bdynamic -lpthread -ldl -lrt \
-o ../example/ProducerExampleForEx
Se você compilar com GCC 5.x ou superior, adicione a flag -D_GLIBCXX_USE_CXX11_ABI=0 devido à alteração do Dual ABI introduzida no GCC 5.
Opção 2: Vinculação dinâmica
Use esta opção caso seu projeto já dependa do Boost ou se você preferir bibliotecas compartilhadas. Essa abordagem requer uma instalação local do Boost 1.62.0.
Etapa 1: Instalar o Boost 1.62.0
Baixe o Boost 1.62.0.
-
Extraia o arquivo compactado:
tar --bzip2 -xf /path/to/boost_1_62_0.tar.bz2 -
Compile e instale o Boost:
cd path/to/boost_1_62_0 ./bootstrap.sh ./b2 link=shared runtime-link=shared ./b2 install -
Verifique se as bibliotecas compartilhadas do Boost estão no caminho de busca do vinculador. Se nenhum resultado aparecer, adicione o caminho da biblioteca do Boost ao arquivo
/etc/ld.so.confe executeldconfig.ldconfig -v | grep libboost
Etapa 2: Compilar sua aplicação
cd aliyun-mq-linux-cpp-sdk # Root of the extracted SDK
cd example # Edit the example file to set your topic and access key
g++ -Wall -Wno-deprecated \
-L ../lib/lib-boost-share/ -I ../include/ \
ProducerExampleForEx.cpp \
-lonsclient4cpp -lboost_system -lboost_thread -lboost_chrono -lboost_filesystem \
-lpthread
export LD_LIBRARY_PATH="../lib/lib-boost-share/"
./a.out
Configurar o ambiente Windows
Visual Studio 2015
Crie um novo projeto no Visual Studio 2015.
-
Abra o Configuration Manager e defina:
Active solution configuration como release
Active solution platform como x64
-
Configure o diretório de saída:
Acesse Properties > Configuration Properties > General.
Defina Output Directory como um diretório de sua escolha, por exemplo
C:\myproject\output.Copie todos os arquivos do diretório
lib\64\do SDK para o diretório de saída.
-
Configure os caminhos de inclusão:
Acesse Properties > Configuration Properties > C/C++ > General.
Adicione um diretório em Additional Include Directories, por exemplo
C:\myproject\include.Copie os arquivos de cabeçalho do diretório
include\do SDK para este diretório.
-
Configure os caminhos de biblioteca:
Acesse Properties > Configuration Properties > Linker > General.
Adicione o diretório de saída da etapa 3 em Additional Library Directories.
-
Adicione a dependência da biblioteca do SDK:
Acesse Properties > Configuration Properties > Linker > Input.
Adicione ONSClient4CPP.lib em Additional Dependencies.
-
Adicione a macro de pré-processador:
Acesse Properties > Configuration Properties > C/C++ > Preprocessor.
Adicione WIN32 em Preprocessor Definitions.
Clique em Build para compilar. Antes de executar o arquivo, copie a DLL do SDK para o diretório de saída ou para um diretório no PATH do sistema.
Outras versões do Visual Studio
Siga as etapas do Visual Studio 2015 acima para configurar seu projeto.
Instale o runtime do Visual C++ 2015 (
vc_redist.x64) na máquina de destino.
Para evitar a configuração manual, abra o projeto de demonstração pré-configurado incluído no diretório demo/ do SDK com o Visual Studio 2015. Atualize os valores de tópico e chave de acesso no código de exemplo e, em seguida, compile e execute.