Sei sulla pagina 1di 13

CODE::BLOCKS

18 de maro de 2010 Reviso do Doc: 2.2

Prof. Marcelo Facio Palin


profpalin@gmail.com

Criando um Projeto C++


Descrio O que vamos aprender? Cdigo:: Blocks um IDE C livre construda para atender as mais exigentes necessidades dos seus utilizadores. Foi concebido para ser muito extensvel e totalmente configurvel. Finalmente, uma IDE com todas as funcionalidades que voc precisa que consistente na aparncia e operaes em todas as plataformas. Construdo como um framework de plugins, o Code::Blocks pode ser estendido com plug-ins. Qualquer tipo de funcionalidade pode ser acrescentado em instalando/codificando um plugin. Por exemplo, a funcionalidade de compilao e depurao j fornecido pelos plugins! Site Oficial http://www.codeblocks.org/
<< www.insciti.com.br/ead/moodle >>

Onde baixar o Code::Blocks; Vamos aprender a criar um projeto Hello World que roda no Console (Tela DOS); Vamos aprender a executar o programa; Vamos aprender a compilar um projeto MPI. Para isso aprenderemos a incluir arquivos .h e linkar com as bibliotecas lib

http://sourceforge.net/projects/codebloc Clique no link dos binaries: ks/files/Binaries/8.02/codeblocks-8.02-

1
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free

Fig 02: Tela para download do cdigo binrio com o MinGW.

Faa o Download pelo Sourceforge.net

O que o Sourceforge.net? SourceForge.net o maior website do mundo voltado ao desenvolvimento de software de cdigo aberto, hospedando mais de 100.000 projetos e mais de 1.000.000 de usurios registrados com um recurso centralizado de gerenciamento de projetos, comunicaes e cdigo. SourceForge.net tem o maior repositrio de cdigo aberto e aplicaes disponvel na internet, e hospeda mais produtos de desenvolvimento de cdigo aberto que qualquer outro site ou rede no mundo. SourceForge.net prov uma grande variedade de servios para projetos hospedados e para a comunidade de Cdigo Aberto.

<< www.insciti.com.br/ead/moodle >>

Download
Ao clicar sobre a palavra Sourceforge na Fig 02, o download se iniciar automaticamente. O arquivo tem o tamanho de 19.3Mb.

2
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free O que o MinGW?


O mingw um conjunto de ferramentas GNU, que foram especificamente portadas para o Ambiente Win32. Entre elas, incluem-se, GCC, BINUTILS e outros. O objetivo principal do mingw poder disponibilizar aos usurios das ferramentas GNU, binrios executveis (exe) e bibliotecas dinmicas(dll) usando as API's nativas do Windows, atributo que nenhuma outra ferramenta faz. A sigla MinGw vem de Minimalist GNU for Windows(Um projeto GNU), ou seja, um conjunto mnimo de ferramentas GNU para desenvolvimento sobre o ambiente Windows. A MinGw um conjunto de ferramentas GNU que foram portadas para o ambiente windows, entretanto, de uma maneira geral, foi portado para o Windows apenas o que necessrio para desenvolvimento mesmo, ou seja, no foi portado um servidor X. Uma desvantagem perante a cygwin que ele no possui o bash portado para o windows. Para resolver isto, eles decidiram criar o msys, que uma verso semelhante ao bash do cygwin, entretanto bem inferior.

Fig 01: Tela Principal da IDE Code::Blocks

Criando o Primeiro Projeto com Code::Blocks


Tela Principal do Code::Blocks

<< www.insciti.com.br/ead/moodle >>

3
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free

Create a new Project

Console Application
Escolha a opo Console Application e clique OK.

<< www.insciti.com.br/ead/moodle >>

A prxima tela somente de BoasVindas do Wizard (auxiliar para criar um projeto). Se voc marcar a opo essa tela no aparecer mais nas prximas vezes. Para quem est iniciando deixe sem marcar a opo.

4
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free

Escolha a Linguagem C++

Digite o Nome do Projeto

Na tela ao lado digite o Nome do Projeto: HelloWorld Escolha em qual pasta deseja salv-lo. No meu exemplo estou salvando o projeto dentro do diretrio de projetos do .Net 2008, mas poderia ser qualquer pasta.

<< www.insciti.com.br/ead/moodle >>

O Code::Blocks criar um projeto chamado HelloWorld.cbp (CBP code blocks Project). Aps essa tela voc dever indicar o compilador C++ para o projeto. Se voc instalou corretamente o Code::Blocks com o MinGW o compilador j estar definido como o GCC.

5
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free

Compilador do Cdigo C++ (GNU) o GCC

Caso o Code::Blocks tenha sido instalado corretamente o compilador GCC j estar definido. Observe que o cdigo compilado para depurao de cdigo sempre ficar dentro da pasta \bin\Debug e o cdigo final (Release) dentro da pasta Release. Qual a diferena entre o cdigo de Debug e o de Release?

Projeto foi Criado


Na Aba Management do Code::Blocks temos a indicao de que o Projeto HelloWorld tem a pasta Sources (fonte) onde tem somente o arquivo main.cpp.

<< www.insciti.com.br/ead/moodle >>

Editando o Cdigo main.cpp


Na Aba Management d um duplo clique sobre o nome do arquivo main.cpp que o cdigo automaticamente se abrir para a edio.

6
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free

COMPILAR - EXECUTAR

Na figura acima temos os botes COMPILAR, EXECUTAR e o boto que faz os dois ao mesmo tempo. Fica a seu critrio escolher entre eles e a opo no Menu Build -> Build (F9). A opo compilar e executar est no Menu Build -> Build na run (Ctrl + F9).

Tela de Sada

<< www.insciti.com.br/ead/moodle >>

O code::Blocks no necessita que coloquemos a funo getchar() para parar o cdigo na tela, ele j faz isso automaticamente:

7
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free

Programao Paralela com MPI

Hello World em Paralelo


// Projeto em C - Hello World Paralelo com MPI #include <stdio.h> #include <mpi.h> int main(int argc, char *argv[]) { int rank,size; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); printf("Ola, mundo. Eu sou processador %d de %d processadores.\n", rank,size); MPI_Finalize();

<< www.insciti.com.br/ead/moodle >>

Depois de copiar o cdigo em MPI para o Editor, clique inverso sobre o nome do projeto e escolha Properties...

8
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free Programao Paralela Na figura abaixo clique no boto Projects Build options...

Definindo o diretrio da mpi.lib.

Primeiro clique na aba Linker Settings e depois no boto Add.. Na caixa menor chamada Add Library clique no boto (...) e v at aonde o seu arquivo mpi.lib est, indique -o e clique ok. Se surgir a pergunta: Keep this as a relative path? Clique em No. Ou seja, ele manter o caminho exato at o arquivo mpi.lib.

<< www.insciti.com.br/ead/moodle >>

9
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free Detalhes de como deve ficar o PATH para a mpil.ib Depois de inserido o caminho para a mpi.lib se selecionar e clicar em Edit Voc ver que o caminho para a lib est completo como na figura abaixo.

Feito isso, clique OK. Pronto a biblioteca mpi.lib foi indicada para linkar.

Definindo o diretrio dos .h (INCLUDES)


Na aba, Search Directories, da figura abaixo, voc deve adicionar o diretrio onde esto os .h do MPI. Para adicionar o diretrio voc deve clicar no boto ADD indicando o diretrio desejado. Ou seja, o diretrio: C:\Arquivos de programas\MPICH2\include ou C:\MPICH2\include dependendo de como voc instalou o MPICH.

<< www.insciti.com.br/ead/moodle >>

10
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free Configurando o diretrio de sada do .EXE

Na figura abaixo temos um campo chamado Output filename. Nele voc deve indicar o diretrio aonde o .exe ser gravado. Como a pasta MPICH2\examples j est compartilhada e preparada para rodarmos o programa paralelo, troque de \bin\Debug\HelloWorld.exe para C:\Arquivos de programas\MPICH2\examples\HelloWorld_parallel.exe.

<< www.insciti.com.br/ead/moodle >>

Ateno: tudo o que voc configurou valer somente para a compilao em Debug

11
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free Voc poder fazer o mesmo para o Release Experimente clicar em Release ...

Voc ver que as configuraes sumiram. Portanto, igual o .Net 2008, voc ter que fazer as mesmas configuraes para o Release, caso queira que o programa rode mais rpido e fique mais enxuto. Lembre-se, release = lanamento, quando o programador ir entregar o .exe final sem erros.
Clique em COMPILAR e verifique se no h ERROS!

<< www.insciti.com.br/ead/moodle >>

12
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Code::Blocks IDE C++ - Free

COMO EXECUTAR UM PROGRAMA MPI? A tela mostra o exemplo da execuo do programa que calcula o produto escalar entre dois vetores. Lembrando que a dimenso do vetor deve ser maior que o nmero de ns do cluster, e mais, a diviso entre a dimenso pelo nmero de mquinas deve ser exato. Essa primeira verso do programa no trata desses erros. Abra o prompt no diretrio MPICH2/examples onde est o programa calc_prodescalar.exe. Digite mpiexec n 3 calc_prodescalar , onde n 3 indica que rodar em 3 mquinas o programa chamado calc_prodescalar.exe.

No Windows no necessrio digitar CPI.exe, basta somente o nome CPI. No Linux tudo CASE SENSITIVE, ou seja, devemos levar em conta at o Maiscula/Minscula.

<< www.insciti.com.br/ead/moodle >>

Erros comuns
Caso o Windows pea a senha, provavelmente ocorreu um problema no registro da senha do usurio Windows com o wmpiregister.exe. Faa o registro da senha novamente. Lembrando que o Login e a senha so os mesmos do usurio Windows. E que a senha no pode ser NULA! ERRO! EXECUTAR UM PROGRAMA MPI DIRETAMENTE, SEM CHAMAR O MPIEXEC CAUSAR ERRO DE EXECUO! USE O PROMPT DO DOS E CHAME O MPIEXEC

13
<< email: profpalin@gmail.com Prof. Marcelo Facio Palin >>

Potrebbero piacerti anche