Nota do Editor: Uma versão atualizada deste artigo, intitulada " Desenvolvendo Aplicativos Usando o C/C++ Development Toolkit do Eclipse", foi publicada em julho de 2007. Esta versão original permanecerá disponível para propósito de referência. Leia o novo artigo para obter as informações mais recentes sobre como usar a C++ Standard Template Library (STL) e o Eclipse C/C++ Development Toolkit (CDT).
As linguagens C e C++ estão entre as linguagens de programação mais populares e amplamente usadas no mundo, portanto, não é surpreendente que a Plataforma Eclipse forneça suporte para desenvolvimento em C/C++. Como a Plataforma Eclipse é somente uma estrutura para as ferramentas de desenvolvedor, não suporta C/C++ diretamente; usa plug-ins externos para suporte. Este artigo mostra como usar o CDT -- um conjunto de plug-ins para desenvolvimento em C/C++. O Projeto CDT (consulte Recursos) está trabalhando para fornecer um Ambiente de Desenvolvimento Integrado (IDE) do C/C++ totalmente funcional para a Plataforma Eclipse. Apesar de o foco do projeto estar no Linux® , funciona em todos os ambiente onde as ferramentas de desenvolvedor GNU estão disponíveis, incluindo Win32 (Windows® 95/98/Me/NT/2000/XP), QNX Neutrino e plataformas Solaris.
O CDT é um projeto de software livre (licenciado sob a Licença Pública Comum) implementado puramente na linguagem de programação Java como um conjunto de plug-ins para o SDK da Plataforma Eclipse. Esses plug-ins incluem uma Perspectiva C/C++ no Ambiente de Trabalho do Eclipse que agora pode suportar desenvolvimento em C/C++ com diversas visualizações e assistentes, juntamente com suporte avançado para edição e depuração.
Devido à sua complexidade, o CDT é dividido em diversos componentes que têm o formato de plug-ins separados. Cada componente opera como um projeto autônomo, com seu próprio conjunto de categorias e listas de correspondência. No entanto, todos os plug-ins são necessários para que o CDT funcione corretamente. Segue uma lista completa dos plug-ins/componentes do CDT:
- Plug-in Primary CDT é o plug-in de "estrutura" do CDT.
- CDT Feature Eclipse é o Componente CDT Feature.
- CDT Core fornece os Componentes Core Model, CDOM e Core.
- CDT UI é a UI, as visualizações, os editores e assistentes do Core.
- CDT Launch fornece o mecanismo de ativação para ferramentas externas, como o compilador e o depurador.
- CDT Debug Core fornece funções de depuração.
- CDT Debug UI fornece a interface com o usuário para os editores, visualizações e assistentes de depuração do CDT.
- CDT Debug MI é o conector do aplicativo para depuradores compatíveis com MI.
Agora, vamos ver como você pode colocar esses componentes para funcionarem em aplicativos reais. A Figura 1 mostra um projeto C/C++ no Eclipse:
Figura 1. Editando um Projeto C/C++ no Eclipse com Plug-in do CDT
Antes de fazer download e instalar o CDT, você deve primeiro assegurar que tenha o GNU C
compiler (GCC) e todas as ferramentas que o acompanham (make, binutils, GDB) disponíveis. Se você estiver
executando o Linux, simplesmente instale os pacotes de desenvolvimento usando o gerenciador de pacotes
apropriado para sua distribuição. No Windows, será necessário instalar o kit de ferramentas Cygwin (consulte
Recursos). Cygwin é um ambiente semelhante ao UNIX® para Windows que inclui uma porta GCC,
juntamente com todas as ferramentas de desenvolvimento necessárias, incluindo automake e o GNU Debugger
(GDB). Cygwin é construído em torno da biblioteca cygwin1.dll . A solução
alternativa para o Cygwin é o Minimalist GNU para Windows (MinGW) (consulte Recursos).
Essa é uma coleta de arquivos de cabeçalho específicos do Windows disponíveis gratuitamente e distribuíveis
gratuitamente e bibliotecas de importação combinadas com conjuntos de ferramentas GNU que permitem produzir
programas Windows nativos que não dependem de nenhuma DLL de terceiros.
O MinGW é sua melhor opção se quiser criar aplicativos do Windows que são compatíveis com POSIX. O MinGW pode
até funcionar sobre uma instalação do Cygwin. Solaris e QNX requerem download e instalação se seus GCC, GNU
Make binutils e portas GDB específicos (consulte Recursos).
Supõe-se que você tenha o Java SDK/JRE e o SDK da Plataforma Eclipse apropriados instalados e
que eles estejam em execução sem problemas. O CDT está disponível em duas opções, como releases estáveis e
construções noturnas. As construções noturnas não foram testadas integralmente, mas oferecem mais recursos e
corrigem erros atuais. Antes da instalação, verifique se a versão anterior do CDT existe em seu disco e, se
existir, certifique-se de removê-la completamente. Como não há nenhum desinstalador disponível para o CDT,
precisará fazer isso manualmente. Para verificar se existe uma versão anterior, vá para o diretório onde
residem os plug-ins do CDT: eclipse/plugins. Em seguida, remova todos os diretórios iniciados pelo nome
org.eclipse.cdt. A última coisa que precisará fazer é remover os diretórios de metadados
or.eclipse.cdt.* de workspace/.metadata/.plugins e
features.
A próxima etapa é fazer download dos binários do CDT. Tome cuidado para fazer download do CDT
correto para seu sistema operacional. Infelizmente, o CDT não é independente da plataforma, mesmo sendo
escrito em Java. Em seguida, descompacte os archives em um diretório temporário e mova todo o conteúdo do
diretório de plug-in de lá para o subdiretório plugins do Eclipse. Também será
necessário mover o conteúdo do diretório features para o subdiretório
features do Eclipse. Agora reinicie o Eclipse. Após o Eclipse ser iniciado novamente, o gerenciador de
atualização indicará que localizou mudanças e solicitará que você confirme as mesmas. Agora, você poderá ver
que dois novos projetos estão disponíveis: C e C++.
Após instalar o CDT no Eclipse, navegue até Arquivo > Novo > Projeto, onde você encontrará três novos tipos de projetos disponíveis: C ("Projeto Make C Padrão"), C++ ("Projeto Make C++ Padrão") e "Converter para Projetos C ou C++". Inicie com o "Projeto Make C++ Padrão" para criar arquivos de código de origem para seu projeto. Na Visualização Projetos C/C++, clique com o botão direito do mouse e selecione Novo > Simples > Arquivo. Denomine seu arquivo e salve-o. Você provavelmente criará muitos arquivos para cabeçalho e arquivos de código de implementação C/C++ dessa forma. O último, é claro, é o makefile, que será usado pelo GNU Make para a construção de binários. Use a sintaxe normal do GNU make para esse makefile (consulte Recursos). Lembre-se de que makefiles requerem que você faça linhas indentadas usando o caractere de tabulação, não espaços.
Você irá mais frequentemente importar código de origem existente para o Eclipse (consulte a Figura 2). O CDT oferece uma maneira fácil de executar essa operação, usando o assistente Importar para copiar arquivos e um diretório de sistema de arquivos para o Ambiente de Trabalho. Vá para a barra de menu principal e selecione Arquivo > Importar > Sistema de Arquivos. Clique em Avançar e abra o diretório de origem e selecione os diretórios a partir dos quais você gostaria de incluir arquivos. Clique em Selecionar Tudo para selecionar todos os recursos no diretório e, em seguida, verifique e cancele a seleção daqueles que você não deseja incluir. Especifique o projeto ou pasta do Ambiente de Trabalho que será o destino da importação. Também é possível importar pastas e arquivos arrastando-os do sistema de arquivos e soltando-os na visualização do Navegador ou copiando e colando.
Figura 2. Importando Código de Origem Existente para um Projeto CDT
O IDE do CDT é construído em torno de um editor extensível universal fornecido pelo plug-in CDT UI. Esse módulo ainda está em desenvolvimento, no entanto; portanto, ainda estão faltando alguns utilitários importantes, como um navegador de classes ou um navegador de documentação de idioma. Os principais recursos do IDE do CDT são:
- Realce da sintaxe -- O IDE do CDT reconhece a sintaxe do C/C++ e fornece realce da sintaxe com colorização e formatação de código totalmente configuráveis:
Figura 3. Marca de Erro de Sintaxe Realçada após Compilação Mal Sucedida
- Estrutura de tópicos O módulo da janela Estrutura de Tópicos fornece uma visualização rápida sobre procedimentos, variáveis, declarações e funções que aparecem no código de origem. Com a estrutura de tópicos, você pode facilmente ir para a referência apropriada no código de origem ou até mesmo procurar todo o código de origem do projeto.
- Assistente de código -- Esse recurso de conclusão de código é semelhante aos encontrados no Borland C++ Builder ou MS Visual Studio. Usa modelos de código e simplesmente ajuda a evitar erros de sintaxe bobos:
Figura 4. Recurso de Assistente de Código Ajuda a Usar Sintaxe de Linguagem Apropriada
-
Modelos de código -- Os modelos de código, que são usados pelo recurso de
assistente de código, são definições de construções sintáticas da linguagem C/C++ padrão. Você também pode
definir seus próprios modelos de código para expandir seus próprios atalhos, como para as palavras-chave
authoroudate. Em Janela > Preferências > C/C++ > Modelos de Código, é possível incluir novos modelos e visualizar a lista integral de modelos. Modelos também podem ser exportados e importados como arquivos XML.
Figura 5. Modelos de Código C/C++ Predefinidos
- Histórico do código -- Mesmo se você não usar CVS ou outro software de gerenciamento de versão de código de origem, é possível rastrear mudanças locais no código de origem de um projeto. Clique com o botão direito do mouse no arquivo selecionado e escolha Comparar a > Histórico Local... no menu de contexto:
Figura 6. Verificando as Mudanças no Código de Origem com a Função de Histórico Local
Construindo e Executando Projetos
CDT oferece uma maneira fácil de configurar opções de construção de projeto. CDT depende de
três ferramentas GNU: GCC, GDB e Make. Portanto, as dependências de GDB para depuração ou de GCC e Make para
compilação requerem que esses aplicativos estejam disponíveis para a plataforma que o usuário deseja usar. A
maioria dos pacotes de código de origem do Linux (e, em geral, semelhante a POSIX) usa o script autoconf para
verificar o ambiente de construção, portanto, é necessário executar o comando configure
, que cria o "Makefile" antes da compilação. CDT não oferece uma maneira para editar os scripts autoconf,
portanto, é necessário escrevê-los manualmente. No entanto, é possível configurar opções de construção para
chamar o comando configure
antes da compilação.
Se você construir um projeto chamando o comando make , as
configurações padrão estão ok, mas se você usar uma maneira mais complicada, é necessário inserir o comando
apropriado (por exemplo, make -f make_it_all) na caixa de texto Construir Comando.
Em seguida, na Visualização Projetos C/C++, selecione Projeto C/C++, em seguida, clique com o botão
direito do mouse e selecione Reconstruir Projeto. Todas as mensagens de compilação vindas do make, do
compilador e do vinculador são redirecionadas para a janela do console:
Figura 7. Janela do Console com Saída do Compilador
Após a compilação bem-sucedida, você provavelmente irá querer executar seu aplicativo. Todas as opções para execução e depuração estão localizadas sob o menu Executar no menu principal do Eclipse. No entanto, as opções para executar um projeto devem ser definidas anteriormente. Você pode fazer isso indo para a opção Executar... no menu principal onde há diferentes perfis para execução de aplicativos; por exemplo, é possível usar um perfil para propósitos de testes e o outro para executar a versão final. Além disso, é possível definir os argumentos que você deseja passar para um aplicativo ou você pode configurar as variáveis de ambiente. As outras opções são para configurar as opções de depuração, como qual depurador usar (GNU GDB ou Cygwin GDB). A Figura 8 mostra um perfil de execução sendo criado para um projeto.
Figura 8. Criando um Perfil de Execução para seu Projeto
Opções gerais adicionais para a construção de projetos estão disponíveis quando você entra na Visualização Projetos C/C++, seleciona seu projeto e clica com o botão direito do mouse e seleciona Propriedades na guia Configurações da Construção. Essas opções afetam principalmente o que ocorre quando uma construção para quando um erro de compilação é encontrado.
CDT estende a Visualização Depuração do Eclipse padrão com funções para depurar código C/C++. A Visualização Depuração permite gerenciar a depuração ou execução de um programa no Ambiente de Trabalho. Para iniciar a depuração do projeto atual, simplesmente alterne para a Visualização Depuração e você poderá configurar (e alterar a qualquer tempo durante a execução) pontos de interrupção/watchpoints no código e rastrear variáveis e registros. A Visualização Depuração exibe a estrutura de pilha para os encadeamentos suspensos para cada destino que você está depurando. Cada encadeamento de seu programa aparece como um nó na árvore e a Visualização de Depuração exibe o processo para cada destino que você está executando.
O Eclipse suporta depuradores compatíveis com Machine Interface (MI) através de um de seus componentes: o plug-in CDT Debug MI. Mas o que é exatamente um depurador de MI? Tradicionalmente, depuradores de GUI de terceiros, como ddd e xxgdb (consulte Recursos) dependem da Command Line Interface (CLI) do GDB ao implementar a funcionalidade de depuração. Infelizmente, essa interface tem comprovado ser altamente não confiável. GDB/MI fornece uma nova interface orientada a máquina que é muito mais adequada para programas que desejam analisar a saída do GDB diretamente.
O C/C++ Development Toolkit (CDT) fornece um conjunto potente de plug-ins que podem ajudá-lo a desenvolver aplicativos C/C++ com o Eclipse. Apesar de o CDT ainda estar em desenvolvimento, você pode tirar proveito de muitos de seus recursos hoje.
Aprender
-
Junte-se à comunidade Eclipse e faça download da
Eclipse.org. O código de origem do Eclipse está licenciado sob a Licença
Pública Comum. Também é possível localizar um glossário de termos e descrições de projetos do Eclipse,
juntamente com artigos técnicos e grupos de notícias.
-
O Projeto CDT usa Eclipse Bugs como seu sistema de controle de
erros e recursos. Inserir um relatório de erro/recurso é tão simples quanto preencher um formulário da Web.
-
Para um artigo de introdução sobre o Eclipse e como ele funciona, leia "
Working the Eclipse Platform" de Greg Adams e Marc Erickson.
-
Para começar a desenvolver aplicativos usando o Eclipse, leia "
Introdução à Plataforma Eclipse" de David Gallardo.
-
Se estiver interessado na criação de seus próprios plug-ins do Eclipse, leia "
Desenvolvendo Plug-ins do Eclipse."
-
Saiba mais sobre a sintaxe de GNU make na gnu.org.
-
Aprenda sobre uma extensão para as ferramentas do IBM WebSphere Studio que fornece informações e recursos
para ajudá-lo a trabalhar com elas. Como todas as ferramentas do WebSphere Studio são baseadas no WebSphere
Studio Workbench e o Workbench é baseado na estrutura do Eclipse, é fácil estender a documentação do produto
usando os recursos de extensão da ajuda do Eclipse. Leia "
Adding Self-Help Support to WebSphere Studio Tools by Extending their Eclipse Help Systems."
-
Expanda suas qualificações no Eclipse visitando, no IBM developerWorks,
Recursos do Projeto Eclipse.
-
Navegue por todo o
Conteúdo do Eclipse em developerWorks.
-
Visite Zona de Software Livre do developerWorks para obter informações extensivas sobre como executar ações, sobre ferramentas e atualizações de projetos para ajudá-lo a se desenvolver com tecnologias de software livre e
usá-las com produtos IBM.
-
Fique atualizado com
Eventos Técnicos e Webcasts do developerWorks.
Obter produtos e tecnologias
-
Faça download dos componentes do
Projeto CDT da Eclipse.org.
-
Faça download do kit de ferramentas Cygwin da Red Hat.
-
Faça download do do kit de ferramentas MinGW da MinGW.org.
-
Faça download do depurador de GUI ddd da gnu.org.
-
Faça download do depurador de GUI xxgdb .
-
Visite WebSphere Studio Plug-in Central
para obter um diretório de plug-ins que foram validados como Prontos para o Software WebSphere Studio.
-
Inove seu próximo projeto de desenvolvimento de software livre com
software de avaliação da IBM, disponível para download ou em DVD.
Discutir
-
Obtenha acesso a um grupo de notícias para
discussões técnicas e perguntas relacionadas ao plug-in C/C++ na Eclipse.org.
-
Participe de discussões relacionadas à implementação do IDE do C/C++ através das
listas de correspondência de desenvolvedores criadas para cada componente do projeto.
-
Envolva-se com a comunidade do developerWorks participando de
Blogs do developerWorks.
Pawel Leszek, um autor do Studio B, é consultor de software independente e um autor especializando-se em arquitetura e administração de sistema Linux/Win/Mac OS. Ele possui experiência com muitos sistemas operacionais, linguagens de programação e protocolos de rede, principalmente o Lotus Domino e o DB2. Pawel é também o autor de uma série de artigos para LinuxWorld e um colunista de Linux para a edição polonesa da PC World. Pawel mora em Varsóvia com sua esposa e doce filhinha. Perguntas e comentários são bem-vindos; envie e-mail diretamente ao autor em pawel.leszek@ipgate.pl.