twsg:dicas:compila_teogc
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
twsg:dicas:compila_teogc [2010/02/02 17:15] – emerson | twsg:dicas:compila_teogc [2018/01/30 01:35] (atual) – [Corrigir fontes TerraLib 422] emerson | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
====== Compilando o TerraOGC no Linux ====== | ====== Compilando o TerraOGC no Linux ====== | ||
- | ===== Variáveis de ambiente ===== | + | Arquivo atualizado |
- | + | ||
- | Antes de compilar o TerraOGC, é necessário ajustar algumas variáveis de ambiente, normalmente no arquivo '' | + | |
- | + | ||
- | <code bash> | + | |
- | # TerraLib Devel | + | |
- | TERRALIB_DIR=/ | + | |
- | + | ||
- | LD_LIBRARY_PATH=$LD_LIBRARY_PATH: | + | |
- | LD_LIBRARY_PATH=$LD_LIBRARY_PATH: | + | |
- | LD_LIBRARY_PATH=$LD_LIBRARY_PATH: | + | |
- | + | ||
- | export LD_LIBRARY_PATH | + | |
- | </ | + | |
- | + | ||
- | **Troque** a variável '' | + | |
- | + | ||
- | Só lembrar que o uso de '' | + | |
- | + | ||
- | ==== TerraLib debug ==== | + | |
- | + | ||
- | Caso queira usar a TerraLib no modo Debug, troque a linha: <code bash> | + | |
- | LD_LIBRARY_PATH=$LD_LIBRARY_PATH: | + | |
- | </ | + | |
- | por: <code bash> | + | |
- | LD_LIBRARY_PATH=$LD_LIBRARY_PATH: | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Configurando o QMake ===== | + | |
- | + | ||
- | ==== TerraLib 3.2.1 e anteriores ==== | + | |
- | + | ||
- | Antes da TerraLib 3.3.0, a biblioteca TIFF usava o nome libtiff para linkar com o sistema. Isso gerava um conflito com a libtiff do sistema. Em consequência faz-se necessário, | + | |
- | + | ||
- | Os projetos TerraOGC forma adaptados para a versão 3.3.0 da TerraLib. Caso queira compilar nas versões anteriores basta trocar as linhas abaixo nos arquivos '' | + | |
- | + | ||
- | De: | + | |
- | < | + | |
- | LIBS += -L../ | + | |
- | </ | + | |
- | Para: | + | |
- | < | + | |
- | LIBS += -L../ | + | |
- | </ | + | |
- | + | ||
- | === Mandriva 2007 x86 === | + | |
- | + | ||
- | * No Mandriva, precisa alterar o arquivo ''/ | + | |
- | QMAKE_LIBDIR_X11 = /usr/lib | + | |
- | QMAKE_LIBDIR_OPENGL = /usr/lib | + | |
- | </ | + | |
- | QMAKE_LIBDIR_X11 = | + | |
- | QMAKE_LIBDIR_OPENGL = | + | |
- | </ | + | |
- | + | ||
- | === OpenSuse 11.0 x86_64 === | + | |
- | + | ||
- | * No OpenSuse 11.0 precisa alterar o arquivo ''/ | + | |
- | QMAKE_LIBDIR | + | |
- | QMAKE_LIBDIR_OPENGL | + | |
- | </ | + | |
- | QMAKE_LIBDIR | + | |
- | QMAKE_LIBDIR_OPENGL = | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ==== Outras distros ==== | + | |
- | + | ||
- | === CentOS 5.2 x86 === | + | |
- | + | ||
- | O CentOS não configura o ''/ | + | |
- | + | ||
- | De: | + | |
- | < | + | |
- | QMAKE_INCDIR | + | |
- | </ | + | |
- | Para: | + | |
- | < | + | |
- | QMAKE_INCDIR | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ===== GCC 4 ===== | + | |
- | + | ||
- | O GCC (GNU C Compiler) em sua versão 4 e posteriores está adotando características do C++0x (versão ainda não homologada pela ISO). Em consequência, | + | |
===== Dependências ===== | ===== Dependências ===== | ||
Linha 101: | Linha 14: | ||
* cURL (API Web Client) | * cURL (API Web Client) | ||
* LibZip (API p/ PKZip): Algumas distros não têm. Então baixe [[http:// | * LibZip (API p/ PKZip): Algumas distros não têm. Então baixe [[http:// | ||
+ | * Boost Regexp (regular expressions) | ||
==== Mandriva ==== | ==== Mandriva ==== | ||
Linha 111: | Linha 25: | ||
* cURL: libcurl4, libcurl-devel | * cURL: libcurl4, libcurl-devel | ||
* LibZip: libzip, libzip1-devel | * LibZip: libzip, libzip1-devel | ||
- | |||
Linha 122: | Linha 35: | ||
* Apache Xerces: Xerces-c, libXerces-c-devel | * Apache Xerces: Xerces-c, libXerces-c-devel | ||
* cURL: libcurl4, libcurl-devel | * cURL: libcurl4, libcurl-devel | ||
- | * LibZip: libzip1 e libzip-devel | + | * LibZip: libzip1 e libzip-devel |
- | + | * Boost: boost, boost-devel | |
- | === 11.2 === | + | |
- | + | ||
- | * libqt4-devel: para obter o QMake | + | |
- | + | ||
- | + | ||
- | + | ||
+ | Obs: a partir da versão 12.3 do OpenSUSE recomenda-se adicionar o repositório [[http:// | ||
==== CentOS ==== | ==== CentOS ==== | ||
Linha 150: | Linha 57: | ||
- O default é instalar tudo no ''/ | - O default é instalar tudo no ''/ | ||
* Extras: glibc-headers para código em C | * Extras: glibc-headers para código em C | ||
- | |||
- | |||
- | |||
Linha 164: | Linha 68: | ||
* cURL: libcurl3, libcurl4-openssl-dev | * cURL: libcurl3, libcurl4-openssl-dev | ||
* LibZip: libzip1, libzip-dev | * LibZip: libzip1, libzip-dev | ||
+ | * Boost Regexp: libboost-regex, | ||
+ | ===== TerraLib ===== | ||
- | ===== Projeto all ===== | + | Obtendo e compilando a TerraLib. |
- | * Vá para a pasta '' | + | Procedimento usando na versão 4.2.2, mas pode ser usada em outras versões posteriores com as devidas adaptações. |
- | * Execute | + | \\ |
- | qmake TE_DATABASE_OPTION=" | + | |
- | make | + | Crie uma pasta '' |
+ | |||
+ | <code bash> | ||
+ | mkdir terralib422 | ||
+ | cd terralib422 | ||
+ | svn export https://svn.dpi.inpe.br/terralib/tags/v-4-2-2/build | ||
+ | svn export https://svn.dpi.inpe.br/ | ||
+ | svn export https:// | ||
+ | |||
+ | mkdir cmake && cd cmake | ||
+ | cmake ../ | ||
</ | </ | ||
- | * Substitua $1 e $2 de acordo com a tabela abaixo: | ||
- | ^ Opção | + | Após gerar esse código, é necessário mudar alguns parâmetros no arquivo '' |
- | | SGBD MySQL | HAS_MYSQL | + | |
- | | SGBD PostgreSQL | + | - BUILD_TERRAMANAGER=ON |
- | | SGBD MySQL e PostgreSQL | HAS_MYSQL HAS_POSTGRESQL | | | + | - BUILD_TERRAVIEW=OFF |
- | | Versão release | + | - CMAKE_PROJECT_NAME=terralib |
- | | Versão debug | | DEBUG | | + | - GeoTIFF_INCLUDE_DIR=/ |
+ | - PostGIS_INCLUDE_DIR=/ | ||
+ | - SQLite_ENABLED=OFF | ||
+ | - TE_DTM_ENABLED=OFF | ||
+ | - TE_DXF_ENABLED=OFF | ||
+ | - TE_PDI_ENABLED=OFF | ||
+ | - TE_QT3_DRIVERS_ENABLED=OFF | ||
+ | - TE_QWT3_DRIVERS_ENABLED=OFF | ||
+ | - TE_SPL_ENABLED=OFF | ||
+ | - TE_STAT_ENABLED=OFF | ||
+ | - ZLIB_LIBRARIES: | ||
+ | |||
+ | Rodar o cmake de novo: | ||
+ | <code bash> | ||
+ | |||
+ | e verificar se há algum erro de compilação. No meu ambiente eu ignorei a GDAL e diversas outras libs não usadas pelo TerraOGC. | ||
+ | |||
+ | ==== Corrigir fontes TerraLib 422 ==== | ||
+ | |||
+ | Corrigir os seguintes arquivos da TerraLib 4.2.2: | ||
+ | |||
+ | Inserir a tag: <code C++># | ||
+ | em src/ | ||
+ | |||
+ | Trocar o EPSG no arquivo TeProjection.cpp: | ||
+ | 4979 -> 4326 (Linhas 186 e 1435) | ||
+ | |||
+ | ===TePostgreSQL.cpp=== | ||
+ | Corrigir a linha do arquivo TePostgreSQL.cpp: | ||
+ | |||
+ | L728: <code C++> | ||
+ | L1030: <code C++> string q = " | ||
+ | L977: <code C++> attrs += " | ||
+ | |||
+ | ===TePostGIS.cpp=== | ||
+ | Corrigir o arquivo TePostGIS.cpp: | ||
+ | L334: <code C++> | ||
+ | L1484: <code C++> | ||
- | * Os projetos da TerraLib e do TerraManager serão compilados também | + | Esta última observação parece |
- | | + | |
- | < | + | Depois é só compilar |
- | qmake TE_DATABASE_OPTION=" | + | <code bash> |
+ | |||
+ | ===== TerraOGC ===== | ||
+ | |||
+ | Obtendo e compilando o TerraOGC. Você pode baixar a versão do TerraOGC compatível com a versão do TerraLib que você usa. Para a última versão usar o '' | ||
+ | \\ | ||
+ | |||
+ | |||
+ | Baixa o TerraOGC | ||
+ | <code bash> | ||
+ | cd projetos | ||
+ | svn co https:// | ||
+ | </ | ||
+ | |||
+ | Prepara a TerraLib: duas opções, mover ou linkar. Para DEV melhor linkar. | ||
+ | <code bash> | ||
+ | cd terraogc | ||
+ | mkdir lib && cd lib | ||
+ | ln -s ../ | ||
+ | ln -s ../ | ||
+ | ln -s ../ | ||
</ | </ | ||
- | * Este //flag// é útil para desenvolvimento, | ||
+ | E ajusta no ~/bashrc: | ||
+ | <code bash> | ||
+ | Na produção, mover para lib. | ||
+ | \\ | ||
- | ==== Exemplos ==== | + | Após isso, rodar o cmake para o TerraOGC. Ele será armazenado na pasta terraogc/ |
- | - Para compilar o TerraOGC com suporte a PostgreSQL e na versão release: | + | <code bash> |
- | qmake TE_DATABASE_OPTION=" | + | cd terraogc/ |
+ | mkdir cmake && cd cmake | ||
+ | cmake ../ | ||
</ | </ | ||
- | | + | |
- | qmake TE_DATABASE_OPTION=" | + | Editar o '' |
+ | |||
+ | | ||
+ | - GeoTIFF_INCLUDE_DIR=/ | ||
+ | |||
+ | Roda o CMake de novo e compila: | ||
+ | <code bash> | ||
+ | cmake ../ | ||
+ | make | ||
</ | </ | ||
- | - Para compilar o TerraOGC com suporte a PostgreSQL na versão release, mas sem precisar compilar a TerraLib (já está feito) | + | |
- | qmake TE_DATABASE_OPTION="HAS_POSTGRESQL" | + | Após compilado, tudo fica nas subpastas do '' |
+ | <code bash> | ||
+ | cd terraogc/ | ||
+ | find ../ | ||
+ | cd terraogc/ | ||
+ | find cmake -name " | ||
</ | </ | ||
+ | |||
+ | Na produção, copiar ou mover para bin e lib ao invés de linkar. | ||
+ |
twsg/dicas/compila_teogc.1265130912.txt.gz · Última modificação: 2010/02/02 17:15 por emerson