domingo, 29 de novembro de 2009

Eclipse PyDev

Sempre recomendei o ERIC Python IDE para todos que estão iniciando em python.
Recentemente testei o Eclipse PyDev. Ele tem tudo que o ERIC tem e mais algumas coisinhas.
Exemplos:
-A completação de código do eclipse constrói a API sem você obrigatoriamente mandar.
-O eclipse reconhece todos interpretadores que você colocar disponíveis e define módulos disponíveis para cada um. Ou seja, você pode ter tantas versões do python na mesma máquina quanto queira.

Ainda tem o básico, que todas IDE tem: cores no código, interpretador, debugger, etc.
Ainda testei pouco, mas promete muito. Recomendo a todos pelo menos uma boa olhada.

Terralib, windows e MS Visual C++ Express 2008

Terralib é uma biblioteca geográfica nacional. Isso por si só já é motivo para interesse de toda a comunidade de desenvolvedores. Adicione o fato de ser mantida pelo INPE, estar em constante desenvolvimento e possuir uma excelente quantidade de algoritmos implementados dentro dela. A pergunta obvia é: Como faço para fazer isso funcionar?

Neste sentido, encontrei um problema quando me pediram para compilar um código escrito utilizando-a na plataforma windows 32bits. Os tutoriais do site do projeto são superficiais e não explicam exatamente como fazer para incluir as dependências. Para piorar tudo, só explica com visual studio 2003. Então aqui vai o tema do post: Compilar programas que usam a terralib com o Microsoft Visual C++ Express 2008 (MSVC 2008, que é grátis!).

Primeiro passo: Descarregue a terralib.

Segundo passo: Descarregue o MSVC 2008.

Bom, agora começaremos a parte complicada.
O processo vai seguir as seguintes etapas:
1- Compilar a terralib importando os arquivos de projeto que vem com ela;
2- Criar um novo projeto para o programa que quero compilar;
3- Configurar esse novo projeto para achar a compilação da terralib; (arquivos .h e .lib)
4- Compilar o projeto.
5- Copiar as DLLs para fazerem o projeto rodar.
Mãos a obra.

1- Compilar a terralib importando os arquivos de projeto que vem com ela;
Chamaremos durante o artigo a pasta de instalação de C:\TERRALIBDIR.
Instale o MSVC 2008.
Pegue o arquivo zipado da terralib e extraia-o em C:\TERRALIBDIR.

Procure (utilizando o "Encontrar" do Windows) arquivos com a extensão ".vcproj"
Ele deve listar os seguintes arquivos:
shapelib.vcproj
libjpeg.vcproj
tiff.vcproj
libspl.vcproj
terralibpdi.vcproj
terralibdtm.vcproj
terralib.vcproj

qwt.vcproj é um arquivo que depende da biblioteca QT que serve para gráficos e plotagens. Eu não consegui compilar essa parte da lib pois não compilei a QT. Uma sugestão é utilizar o QT SDK que instala tudo. Não fiz esses testes.

Abra os arquivos na ordem que estão escritos com o MSVC 2008. Ele irá pedir para importar o arquivo. Claro, pois os desenvolvedores do terralib só prepararam eles com Visual Studio 2003.
No menu Build-> Build Solution. Quando terminar ele vai mostrar se teve sucesso ou não. Caso algum falhe, toda a compilação vai falhar. É o caso de olhar com calma.

2- Criar um novo projeto para o programa que quero compilar;
Primeiramente, abra o MSVC 2008, crie um novo projeto e adicione os arquivos que queremos utilizar.
Lembrando que o nome do projeto amarra qual será o arquivo principal que o MSVC vai chamar. Durante a criação será perguntado se deseja utilizar cabeçalhos précompilados (precompiled headers). Desmarque essa opção conforme a imagem abaixo.



Agora insira os outros arquivos do seu projeto nas pastar headers (.h) e sources (.cpp).

3- Configurar esse novo projeto para achar a compilação da terralib; (arquivos .h e .lib)
Com o botão direito no nome do projeto na barra "Solution Explorer", acesse "Properties"->"Configuration Properties"->"C/C++"
No tópico: "Additional Include Directories" devem ser adicionados todos os diretórios que contém arquivos ".h" da terralib. No nosso caso, procure os diretórios na pasta: "C:\TERRALIBDIR\src\terralib\"
O mínimo que deve-se inserir nesta lista é a pasta: "C:\TERRALIBDIR\src\terralib\kernel" que conté o núcleo da terralib.

Ainda nas propriedades do projeto "Configuration Properties"->"Linker"->"General"
No tópico: "Additional Library Directories" devem ser adicionados todos os diretórios que contém arquivos ".lib" da terralib. No nosso caso, procure os diretórios na pasta: "C:\TERRALIBDIR\Debug\"
O mínimo que deve-se inserir nesta lista é a pasta: "C:\TERRALIBDIR\Debug\terralib" que contém arquivo "terralib.lib".
Por fim, no tópico "Configuration Properties"->"Linker"->"Input"->"Aditional Dependencies", insira o nome "terralib.lib"

4- Compilar o projeto.
E pronto. Seu programa estará pronto para compilar apertando F7.

5- Copiar as DLLs para fazerem o projeto rodar.
Para rodar o programa, será necessário procurar quais DLL ele usa. O jeito simples de fazer isso é rodar o programa várias vezes e cada vez que o windows reclamar de falta de DLL faça a procura da DLL na pasta "C:\TERRALIBDIR\Debug\".

Compacte todos eles juntos (exe e dlls) e mande para o seu amigo mais interessado!
Abraços e até o próximo.