Eclipse 4.3 (Kepler) para Programação C/C++
On Novembro 9, 2021 by adminEclipse é um Ambiente de Desenvolvimento Integrado (IDE) open-source, suportado pela IBM. O site mãe é @ www.eclipse.org. O Eclipse é popular para o desenvolvimento de projetos Java. Ele também suporta C/C++, PHP, Python, Perl, e outros desenvolvimentos de projetos web via plug-ins extensíveis. Eclipse é multi-plataforma e roda sob Windows, Linux e Mac OS.
Como instalar a Ferramenta de Desenvolvimento Eclipse C/C++ (CDT) 8.1.2 para Eclipse 4.2.2 (Juno)
Passo 0: Instalar MinGW GCC ou Cygwin GCC
Para usar o Eclipse para programação C/C++, você precisa de um compilador C/C++. No Windows, você pode instalar o MinGW GCC ou o Cygwin GCC. Escolha MinGW se você não tem certeza, porque o MinGW é mais leve e fácil de instalar, mas tem menos recursos.
- MinGW GCC: Leia “Como instalar o MinGW”.
- Cygwin GCC: Leia “Como instalar o Cygwin”. Certifique-se que seleccionou “
gcc
“, “g++
“, “gdb
“, e “make
” sob os pacotes “Devel
“. Categoria (Desenvolvimento) – estes pacotes não fazem parte da instalação padrão.
Passo 1: Instale a ferramenta de desenvolvimento Eclipse C/C++ (CDT)
Duas maneiras de instalar CDT, dependendo se você já instalou um Eclipse anteriormente:
- Se você já instalou “Eclipse para Desenvolvedores Java” ou outros pacotes Eclipse, você pode instalar o plug-in CDT da seguinte forma:
Launch Eclipse ⇒ Ajuda ⇒ Instalar Novo Software ⇒ No campo “Work with”, desça o menu suspenso e selecione “Kepler – http://download.eclipse.org/releases/kepler”. (ou juno para o Eclipse 4.2; ou helios para o Eclipse 3.7).
Na caixa “Name”, expandir o nó “Programming Language” ⇒ Verifique “C/C++ Development Tools” ⇒ “Next” ⇒ … ⇒ “Finish”. - Se você não tiver instalado nenhum pacote Eclipse, você pode baixar “Eclipse IDE for C/C++ Developers” de http://www.eclipse.org/downloads, e descompactar o arquivo baixado em um diretório de sua escolha.
Passo 2: Configuração
Você NÃO precisa fazer nenhuma configuração, desde que os binários Cygwin ou MinGW estejam incluídos na variável de ambiente PATH
. CDT procura no para descobrir os compiladores C/C++.
Escrevendo seu Primeiro Programa C/C++ no Eclipse
C++ Programa
Passo 0: Iniciar Eclipse
- Inicie o Eclipse executando “
eclipse.exe
” no diretório instalado do Eclipse. - Selecione um diretório apropriado para seu espaço de trabalho (ou seja onde você gostaria de salvar seus trabalhos).
- Se a tela de “boas-vindas” aparecer, feche-a clicando no botão “fechar”.
Passo 1: Criar um novo Projeto C++
Para cada aplicação C++, você precisa criar um projeto para manter todos os códigos fonte, arquivos objeto, arquivos executáveis e recursos relevantes.
Para criar um novo projeto C++:
- Escolha o menu “Arquivo” ⇒ “Novo” ⇒ Projeto… ⇒ C/C+++ ⇒ C+++ project.
- O diálogo “C+++ Project” aparece.
- No campo “Project name”, insira “
FirstProject
“. - Na caixa “Project Types”, selecione “Executable” ⇒ “Empty Project”.
- Na caixa “Toolchains”, escolha o seu compilador, por exemplo “Cygwin GCC” ou “MinGW GCC” ⇒ Next.
- No campo “Project name”, insira “
- A caixa de diálogo “Select Configurations” aparece. Seleccione “Debug” e “Release” ⇒ Finish.
Passo 2: Escreva um Programa Hello-world C++
- No “Project Explorer” (painel mais à esquerda) ⇒ Clique com o botão direito do rato em “
FirstProject
“. (ou use o menu “File”) ⇒ Novo ⇒ Source File. - O diálogo “New Source File” aparece.
- No campo “Source file”, introduza “
Hello.cpp
“. - Clique em “Finish”.
- No campo “Source file”, introduza “
- O ficheiro fonte “
Hello.cpp
” abre-se no painel do editor (clique duas vezes em “test.cpp
” para abrir se necessário). Introduza os seguintes códigos:#include <iostream>using namespace std; int main() { cout << "Hello, world!" << endl; return 0;}
Se “Unresolved Inclusion Error”
Se o erro “unresolved inclusion” aparecer ao lado da instrução #include
, a instrução “include paths for headers” não está definida correctamente. Seleccione “Project” menu ⇒ Propriedades ⇒ C/C++ Geral ⇒ Caminhos e Símbolos ⇒ Em “Includes” tab:
Para Cygwin GCC:
- “Add” os seguintes directórios para “GNU C”, onde
$CYGWIN_HOME
é o seu directório Cygwin instalado:$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include
$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include-fixed
$CYGWIN_HOME\usr\include
$CYGWIN_HOME\usr\include\w32api
- “Adicionar” os seguintes directórios ao “GNU C++”, onde
$CYGWIN_HOME
é o seu directório Cygwin instalado:$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include\c++
$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include\c++\i686-pc-cygwin
$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include\c++\backward
$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include
$CYGWIN_HOME\lib\gcc\i686-pc-cygwin.5.x\include-fixed
$CYGWIN_HOME\usr\include
$CYGWIN_HOME\usr\include\w32api
Para MinGW GCC:
- “Adicionar” os seguintes directórios ao “GNU C”, onde
$MINGW_HOME
é o seu directório MinGW instalado:$MINGW_HOME\lib\gcc\mingw32.6.x\include
$MINGW_HOME\include
$MINGW_HOME\lib\gcc\mingw32.6.x\include-fixed
- “Adicione” os seguintes diretórios ao “GNU C++”, onde
$MINGW_HOME
é o seu diretório instalado do Cygwin:$MINGW_HOME\lib\gcc\mingw32.6.x\include\c++
$MINGW_HOME\lib\gcc\mingw32.6.x\include\c++\mingw32
$MINGW_HOME\lib\gcc\mingw32.6.x\include\c++\backward
$MINGW_HOME\lib\gcc\mingw32.6.x\include
$MINGW_HOME\include
$MINGW_HOME\lib\gcc\mingw32.6.x\include-fixed
NOTE: Para encontrar os caminhos de cabeçalho, você pode fazer uma busca em cabeçalhos como “stdio.h
“. (para C) e “iostream
“. (para C+++) sob o diretório instalado Cygwin ou MinGW.
libmpfr4
” no cygwin.Passo 3: Compilar/Build
Clique com o botão direito do rato no “FirstProject
“. (ou use o menu “Project”) ⇒ escolha “Build Project” para compilar e ligar o programa.
Passo 4: Executar
Para executar o programa, clique com o botão direito do rato sobre o “FirstProject
“. (ou em qualquer lugar na fonte “test.cpp
“, ou selecione o menu “Run”) ⇒ Run As ⇒ Local C/C++ Application ⇒ (Se perguntar, escolha o depurador gdb do Cygwin) ⇒ A saída “Hello, world!” aparece no painel “Console”.
NOTE: Você precisa criar um novo projeto C++ para CADA um dos seus problemas de programação. Isto é confuso para escrever programas de brinquedo!
C Programa
Seguir os mesmos passos que os anteriores. Crie um “Projeto C” (ao invés de “Projeto C++”). Tente o seguinte programa Hello-world (chamado “Hello.c
“).
#include <stdio.h> int main() { printf("Hello, world!\n"); return 0;}
C++ Programa com Makefile
Nos exemplos anteriores, usamos o chamado managed-make onde o Eclipse gerou automaticamente um makefile para construir o programa. Também podemos escolher escrever nosso próprio makefile para controle completo do processo de construção.
Passo 1: Criar um Projeto C++ Makefile
Do menu “File” ⇒ Novo Projeto ⇒… ⇒ C/C+++ ⇒ Projeto C++ ⇒ Em “Project name”, digite “HelloCppMakefile
“. ⇒ Em “Project type”, escolha “Makefile Project”, “Empty Project” ⇒ Em “Toolchains”, escolha “Cygwin GCC” ou “MinGW GCC”. Ignore a mensagem de aviso.
Passo 2: Escreva um Programa C++
Clique com o botão direito do rato no projecto ⇒ Novo ⇒ Ficheiro Fonte ⇒ Em “Ficheiro Fonte”, introduza “Hello.cpp
“. ⇒ Introduza os seguintes códigos fonte:
#include <iostream>using namespace std; int main() {cout << "Hello, world!" << endl;return 0;}
Passo 3: Escreva um Makefile
Clique com o botão direito do rato no projecto ⇒ Novo ficheiro ⇒ Em “Nome do ficheiro”, introduza “makefile
“. ⇒ Digite os seguintes códigos. Note que você precisa usar um separador (NÃO Espaços) para o travessão.
all: Hello.exe clean:rm Hello.o Hello.exe Hello.exe: Hello.og++ -g -o Hello.exe Hello.o Hello.o: Hello.cppg++ -c -g Hello.cpp
Passo 4: Construir o Projeto
Clicar direito no projeto ⇒ Construir Projeto.
Passo 5: Executar o Programa
Clicar direito no projeto ⇒ Executar Como ⇒ Aplicação Local C/C++.
Escreva um makefile para compilar programas de brinquedos sob um projeto.
Ler a Documentação
No mínimo, você DEVERÁ navegar pelo “Workbench User Guide” e “C/C++ Development User Guide” do Eclipse – acessível através da página “Welcome” ou do menu “Help” do Eclipse. Isto irá poupar-lhe muitas horas agonizando tentando descobrir como fazer algumas coisas mais tarde.
Debugging C/C++ Programs in Eclipse CDT
Able to use a graphics debugger to debug program is crucial in programming. Pode poupar-lhe inúmeras horas adivinhando o que correu mal.
Passo 0: Escrever um programa em C++ – O programa seguinte calcula e imprime o factorial de n
(=1*2*3*...*n
). O programa, entretanto, tem um erro lógico e produz uma resposta errada para n
=20
(“The Factorial of 20 is -2102132736
” – um número negativo?!).
1234567891011121314 |
#include <iostream>using namespace std; int main() { int n = 20; int factorial = 1; // n! = 1*2*3...*n for (int i = 1; i <= n; i++) { factorial *= i; } cout << "The Factorial of " << n << " is " << factorial << endl; return 0;} |
The Factorial of 20 is -2102132736
Deixe-nos usar o depurador gráfico para depurar o programa.
Passo 1: Definir um ponto de parada inicial – Um ponto de parada suspende a execução do programa para que você examine os estados internos (por exemplo valor das variáveis) do programa. Antes de iniciar o depurador, você precisa definir pelo menos um ponto de parada para suspender a execução dentro do programa. Defina um ponto de parada em main()
função clicando duas vezes na margem esquerda da linha contendo main()
. Um círculo azul aparece na margem esquerda indicando que um ponto de interrupção está definido nessa linha.
Passo 2: Iniciar o Debugger – Clique com o botão direito do mouse no projeto (ou use o menu “Run”) ⇒ “Debug As” ⇒ “Local C/C++ Application” ⇒ escolha “Yes” para mudar para a perspectiva “Debug” (Uma perspectiva é um arranjo particular de painéis para se adequar a uma determinada tarefa de desenvolvimento, como edição ou depuração). O programa inicia a execução mas suspende sua operação no ponto de parada, ou seja, a main()
function.
Como ilustrado no diagrama seguinte, a linha realçada (também apontada por uma seta azul) indica a declaração a ser executada no próximo passo.
Step 3: Step-Over and Watch the Variables and Outputs – Clique no botão “Step Over” (ou selecione “Step Over” no menu “Run”) para passar um único passo através do seu programa. Em cada um dos passos, examine o valor das variáveis (no painel “Variable”) e os outputs produzidos pelo seu programa (no painel “Console”), se houver. Você também pode colocar o cursor em qualquer variável para inspecionar o conteúdo da variável.
Single-stepping through the program and watching the values of internal variables and the outputs produced is the ultimate mean in debugging programs – porque é exatamente como o computador executa o seu programa!
Step 4: Breakpoint, Run-To-Line, Resume and Terminate – Como mencionado, um breakpoint suspende a execução do programa e permite que você examine os estados internos do programa. Para definir um ponto de parada em uma determinada instrução, clique duas vezes na margem esquerda daquela linha (ou selecione “Toggle Breakpoint” no menu “Run”).
“Resume” continua a execução do programa, até o próximo ponto de parada, ou até o final do programa.
“Single-step” através de um loop com uma grande contagem é demorado. Você pode definir um ponto de parada na instrução imediatamente fora do loop (por exemplo, Linha 12 do programa acima), e emitir “Resume” para completar o loop.
Alternativamente, você pode colocar o cursor sobre uma instrução em particular, e emitir “Run-To-Line” do menu “Run” para continuar a execução até a linha.
“Terminar” termina a sessão de depuração. Termine sempre a sua sessão de depuração atual usando “Terminar” ou “Retomar” até o final do programa.
Passo 5: Voltando à perspectiva C/C++ – Clique no ícone de perspectiva “C/C++” no canto superior direito para voltar à perspectiva “C/C++” para programação posterior (ou menu “Window” ⇒ Abrir perspectiva ⇒ C/C++).
Posso enfatizar mais que dominar o uso do depurador é crucial na programação. Explore os recursos fornecidos pelos depuradores.
Outros recursos do depurador
Modificar o valor de uma variável: Você pode modificar o valor de uma variável inserindo um novo valor no painel “Variável”. Isto é útil para modificar temporariamente o comportamento de um programa, sem alterar o código fonte.
Step-Into e Step-Return: Para depurar uma função, você precisa usar “Step-Into” para entrar na primeira declaração do método. Você pode usar “Step-Return” para retornar ao chamador, em qualquer lugar dentro do método. Alternativamente, você pode definir um ponto de interrupção dentro de um método.
NOTE: Se você receber a mensagem de erro “Can’t find a source file at /cygdrive/c
…” durante a depuração, você precisa configurar um mapeamento entre “/cygdrive/c
” e “c:/
” (assumindo que o seu programa é mantido na unidade c. De “Window” ⇒ “Preferences” ⇒ “C/C++” ⇒ “Debug” ⇒ “Common Source Lookup Path”, seleccione “Add” ⇒ “Path Mapping”.
Tips &Truques
Ler Eclipse para as Dicas de Java &Truques para dicas gerais na utilização do Eclipse.
C/C++ Desenvolvimento de Software Usando GCC
- Você pode encontrar os comandos usados no CDT do Eclipse para construir o projeto em “
<workspace>\.metadata\.plugins\org.eclipse.cdt.ui\global-build.log
“. - Configurando percursos de inclusão, percursos de biblioteca e bibliotecas: Ao construir o programa, o compilador precisa dos arquivos de cabeçalho para compilar os códigos-fonte; o linker precisa das bibliotecas para resolver referências externas. O compilador procura nos “caminhos de inclusão” pelos cabeçalhos especificados em
#include
diretivas. O linker procura no “library-paths” por “bibliotecas” necessárias para ligar o programa. No GCC, o caminho de inclusão é especificado via-Idir
opção ou variável de ambienteCPATH
. O caminho da biblioteca é especificado via-Ldir
opção, ou variável de ambienteLIBRARY_PATH
. A bibliotecalibxxx.a
é especificada via opção-lxxx
(letra minúscula'l'
, sem o prefixolib
e.a
extensão).
No CDT Eclipse, você pode definir os caminhos de inclusão, caminhos da biblioteca e bibliotecas clicando com o botão direito do mouse no projeto ⇒ Propriedades ⇒ C/C++ Geral ⇒ Caminhos e Símbolos ⇒ Em abas “Includes”, “Library Paths” e “Libraries”. As definições são aplicáveis apenas ao projecto seleccionado.
Para definir os caminhos de inclusão e os caminhos da biblioteca para todos os projectos, defina as variáveis de ambienteCPATH
eLIBRARY_PATH
. No Eclipse, escolha “Window” ⇒ Preferences ⇒ C/C++ ⇒ Build ⇒ Environment.
Alternatively, copie os cabeçalhos e bibliotecas para diretórios do sistema, e você pode omitir os caminhos de inclusão e caminhos de biblioteca. - OpenGL com GLUT: Para o Cygwin, você precisa instalar gcc, g++, gdb, make (na categoria Devel) e opengl, freeglut (na categoria graphics). Os cabeçalhos
gl.h
,glu.h
,glut.h
são mantidos em$cygwin\usr\include\w32api\GL
. Use#include <GL/gl__.h>
para incluir os cabeçalhos. As bibliotecaslibopengl32.a
libglu32.a
elibglut32.a
são guardadas em$cygwin\lib\w32api
. Para especificar estas bibliotecas no link, use-lopengl32
-lglu32
-lglut32
opções (sem o prefixolib
e extensão.a
). - OpenGL com SDL: Baixe o SDL de http://www.libsdl.org. Escolha Development Libraries ⇒ win32 ⇒ mingw32 ⇒ Unzip. Copie o diretório de cabeçalhos
SDL
(eminclude
) para$cygwin\usr\include\w32api
; copie todos os arquivos da biblioteca emlib
para$cygwin\lib\w32api
; copie a biblioteca em tempo de execuçãoSDL.dll
(embin
) paraWindows/System32
. No seu programa, inclua estes dois cabeçalhos:#include <SDL/sdl.h>
e#include <SDL/sdl_opengl.h>
. Para ligar, adicione estas bibliotecas:-lSDL
-lSDLmain
. - #pragma Comment Directive: pragma comment directive, e.g.,
#pragma comment(lib, "opengl32.lib")
, é frequentemente usada para incluir uma biblioteca em particular (o mesmo que-l
opção). Esta diretiva dependente do sistema funciona no compilador do Windows, mas NÃO no GCC. - Erro “múltiplos padrões de alvo”: Há um problema com o GNU make (em
$Cygwin\bin\make.exe
). Substituído por esta cópia @ http://www.cmake.org/files/cygwin/make.exe. - fflush(stdout): A biblioteca gcc usa E/S em buffer (de acordo com a Especificação C). A saída só é escrita para o fluxo de saída após um novo caractere de linha. Você pode nivelar o output com um
fflush()
. - O nome do projeto não deve incluir a palavra “setup”: Se você nomear seu projeto C/C++ com um nome que inclua a palavra “
setup
“, então o resultado “*setup*.exe
” irá acionar o UAC (User Authorization Control) e requer o direito de administrador para ser executado. (Isso me levou algumas horas para descobrir! Tente renomear um “hello.exe
” para “mysetup.exe
“.)
Arquivo I/O no Eclipse
Refer para Eclipse para o arquivo IO.
Deixe uma resposta