Esta etapa do tutorial tem como objetivo auxiliar na configuração
de um ambiente Windows para desenvolvimento de aplicações que utilizem o
framework TDK. Assumimos que você tem acesso a bibliotecas específicas que
estão na rede local do TecGraf.
|
|
Introdução
|
O desenvolvimento do Tdk é feito utilizando um sistema de controle de versão,
que tem a finalidade de controlar as diferentes versões – histórico e
desenvolvimento – dos códigos-fontes e também de sua documentação.
Existem diversos sistemas de controle de versão. Nós utilizamos o Subversion
(também conhecido por SVN) para armazenar o Tdk.
Para fazer download do Tdk é necessário ter um cliente do Subversion instalado
em sua máquina e permissão de acesso ao servidor do SVN do Tdk. Para ter
permissão de acesso ao servidor SVN do Tdk, você deve solicitar a criação de um
usuário e senha para acesso ao Trac (ambiente colaborativo do TDK)
e solicitar permissão de acesso ao SVN. Estas solicitações devem ser
feitas através do e-mail tdk@tecgraf.puc-rio.br.
Neste tutorial estamos usando o cliente do Subversion chamado TortoiseSVN na
versão v1.4.3.
O TDK é escrito na linguagem C++. Para o seu desenvolvimento, estamos usando
neste tutorial o ambiente Microsoft Visual Studio .NET 2003.
|
|
1) Download do Tdk
|
O primeiro passo deste tutorial é
fazer o download do TDK.
1.1) Primeiro escolha um diretório em sua máquina no qual serão armazenados os
arquivos do repositório do TDK, por exemplo o diretório D:\users\seu_login\svn (posteriormente
faremos referência ao diretório escolhido como SVN_ROOT) .
1.2) Utilizando um cliente de acesso a SVN conecte no servidor do SVN e execute
um checkout do TDK. Se você tiver o TortoiseSVN instalado, este passo é feito
abrindo o Windows Explorer para encontrar o diretório escolhido e clicando
sobre o mesmo com o botão direito. Dentre as opções do menu, selecione SVN
Checkout.
|
|
1.3) Informe a URL do repositório
https://trac.inf.puc-rio.br/tecgis/tdk/HEAD e clique OK para
prosseguir.
|
|
1.4) Será solicitado um nome de
usuário e senha. Preencha os campos corretamente e confirme para que se inicie
o processo de checkout. Como são muitos arquivos, este processo pode ser um
pouco demorado.
|
|
2) Compilação das bibliotecas
|
Agora precisamos compilar alguns
projetos antes de continuarmos. Considerando que SVN_ROOT é o diretório onde
foi feito o checkout pelo SVN, os arquivos de solução que devem ser compilados
são os seguintes:
SVN_ROOT\tdk\mak.vc71\tdkserver.sln
SVN_ROOT\iupvipe\mak.vc71\iupvipe.sln
Para cada um destes arquivos, faça o seguinte procedimento: encontre o arquivo
utilizando o Windows Explorer e clique duas vezes sobre o mesmo. O Visual
Studio .NET 2003 será iniciado, abrindo este arquivo de solução. Então acesse o
menu Build -> Build Solution e aguarde a compilação das bibliotecas. A
figura abaixo ilustra este processo.
|
|
3) Criando um novo projeto no Visual Studio .NET 2003
|
Agora que já foram geradas as
bibliotecas que serão utilizadas, iremos criar uma aplicação no Visual Studio
.NET 2003 que utilize o framework TDK.
3.1) Inicie a criação de um novo projeto utilizando o menu File -> New
-> Project.
3.2) Na área Project Types, selecione Visual C++ Projects, e então Win32.
3.3) Na área Templates, selecione Win32 Console Project.
3.4) Dê um nome para o seu projeto, como por exemplo TDK_HelloWorld, e clique
OK.
3.5) Informe em Location aonde você deseja criar o seu projeto (posteriormente
faremos referência ao diretório escolhido como PRJ_DIR).
|
|
3.6) Caso apareça um Application
Wizard, simplesmente clique Finish para concluir a criação do projeto.
Serão criados alguns arquivos do projeto, entre eles o TDK_HelloWorld.cpp, que
você editará daqui a pouco para fazer seu primeiro programa com o TDK.
|
|
3.7) Acesse as propriedades do
projeto clicando com o botão direito em cima do nome do projeto TDK_HelloWorld
na janela da direita Solution Explorer – TDK_HelloWorld. Cuidado neste passo
porque se você for acessar as propriedades através do menu em Project/
Properties, o projeto (e não um arquivo) deve estar selecionado na janela
Solution Explorer. Repare na figura acima que o arquivo TDK_HelloWorld.cpp está
selecionado. Para que você consiga fazer este passo, você precisa selecionar o
nome do projeto e não deste arquivo.
3.8) Selecione na subpasta C/C++ a opção Code Generation e mude o campo Runtime
Library para Multi-threaded Debug (/MTd) como mostra a figura abaixo.
|
|
4) Linkando o projeto com as bibliotecas TDK
|
4.1) Na pasta Linker -> Input,
escreva os nomes das bibliotecas que serão utilizadas, no item Additional
Dependencies. As seguintes bibliotecas precisam ser referenciadas:
-
intrapc.lib
-
tdkpeer.lib
-
intrapc.lib
-
libpq.lib
-
iup.lib
-
iupcontrols.lib
-
tdkiup.lib
-
md5.lib
-
tdkcdgraphics.lib
-
tdkcontrol.lib
-
tdkcore.lib
-
tdkgps.lib
-
tdkgraphics.lib
-
tdkservices.lib
-
tdkutils.lib
-
terralib_ext.lib
-
libpq.lib
-
cd.lib
-
cdiup.lib
-
im.lib
-
im_process.lib
-
terralib.lib
-
shapelib.lib
-
tiff.lib
-
libjpeg.lib
-
cdgdiplus.lib
-
libmysql.lib
-
gdiplus.lib
-
wsock32.lib
-
comctl32.lib
-
odbc32.lib
-
odbccp32.lib
-
lti_dsdk_dll.lib
-
winmm.lib
-
cdpdflib.lib
-
pthreadVC2.lib
4.2) Na aba Linker -> Input, adicione LIBC.lib no item Ignore Specific
Library.
4.3) Na aba Linker -> General, escreva os caminhos de onde estas bibliotecas
estão, no item Additional Library Directories. Os diretórios a serem
referenciados encontram-se a seguir. Cuidado porque o dir SVN_ROOT deve ser
alterado para o seu caso!
-
SVN_ROOT\lib\mtdebug\vc71
-
SVN_ROOT\tdk\utils\pdflib\dll
-
SVN_ROOT\tdk\terralib\terralibw\PostgreSQL
-
SVN_ROOT\tdk\dependences\cd\lib.vc71
-
SVN_ROOT\tdk\dependences\im\lib.vc71
-
SVN_ROOT\tdk\terralib\terralibw\terralib\Debug
-
SVN_ROOT\tdk\terralib\terralibw\shapelib\Debug
-
SVN_ROOT\tdk\terralib\terralibw\tiff\Debug
-
SVN_ROOT\tdk\terralib\terralibw\libjpeg\Debug
-
SVN_ROOT\tdk\terralib\terralibw\zlib
-
SVN_ROOT\tdk\terralib\terralibw\DSDK\Debug
-
SVN_ROOT\tdk\terralib\terralibw\MySQL
-
SVN_ROOT\iupvipe\dependences\iup\lib.vc71
-
SVN_ROOT\tdk\dependences\pthread\dll.vc71
4.4) Na área C/C++ -> General no item Additional Include Directories, escreva
os caminhos dos headers (arquivos .h) dos módulos que serão utilizados na
aplicação.
-
SVN_ROOT\tdk\terralib\src\terralib\kernel
-
SVN_ROOT\tdk\src\peer\components\core
-
SVN_ROOT\tdk\src\peer\components\core\styles
-
SVN_ROOT\tdk\src\peer\components\control
-
SVN_ROOT\tdk\src\peer\components\control\events
-
SVN_ROOT\tdk\src\peer\components\control\tasks
-
SVN_ROOT\tdk\src\peer\components\control\interactors
-
SVN_ROOT\tdk\src\peer\components\control\displays
-
SVN_ROOT\tdk\src\peer\components\utils
-
SVN_ROOT\tdk\src\peer\components\utils\dbDrivers
-
SVN_ROOT\tdk\src\peer\components\utils\dbDrivers\adoDrivers
-
SVN_ROOT\tdk\src\peer\components
-
SVN_ROOT\tdk\src\peer\components\graphics
-
SVN_ROOT\tdk\src\peer\services
-
SVN_ROOT\iupvipe\src
-
SVN_ROOT\iupvipe\dependences\iup\include
-
SVN_ROOT\tdk\src\peer\components\graphics\CD
-
SVN_ROOT\tdk\dependences\cd\include
-
SVN_ROOT\tdk\src\peer\components\utils\dbDrivers
-
SVN_ROOT\tdk\src\peer\components\utils\dbDrivers\adoDrivers
-
SVN_ROOT\tdk\src
4.5) Na área Build Events -> Post-Build Event no item Command Line, escreva
os comandos abaixo para que as dll's necessárias para a execução da aplicação
sejam copiadas.
-
copy SVN_ROOT\tdk\terralib\terralibw\zlib\zlib.dll "$(OutDir)"\zlib1.dll
-
copy SVN_ROOT\tdk\terralib\terralibw\DSDK\Debug\lti_dsdk_dll.dll "$(OutDir)"
-
copy SVN_ROOT\tdk\dependences\general\*.* "$(OutDir)"
|
5) Criando um Hello World
|
Após estabelecer os links com as
bibliotecas do TDK, já é possível escrever um código C++ que utiliza funções do
TDK para uma aplicação Hello World de teste.
5.1) Ao criar o seu projeto, foi criado automaticamente o arquivo
TDK_HelloWorld.cpp. Edite o código fonte deste arquivo para deixá-lo da
seguinte forma:
|
#include "stdafx.h"
#include "TdkIupPresentationUtils.h"
int _tmain(int argc, _TCHAR* argv[])
{
try {
TdkIupPresentationUtils::initIup();
TdkIupPresentationUtils::showMessageBox("World","Hello");
TdkIupPresentationUtils::closeIup();
} catch ( TdkException& ex ) {
fprintf(stderr, ex.trace() );
exit(1);
}
return 0;
}
|
|
|
5.2) Execute então o processo de build no seu projeto, pelo menu Build ->
Build Solution, e então execute seu projeto, usando o menu Debug -> Start
Without Debugging.
5.3) Se o TDK estiver devidamente configurado, a aplicação Hello World será
construída e iniciada corretamente, aparecendo na tela uma caixa de diálogo com
um botão de confirmação.
|
|
|
|
Topo ^
|