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:07] – 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 158: | Linha 63: | ||
| * GD: libgd2-xpm, libgd2-xpm-dev | * GD: libgd2-xpm, libgd2-xpm-dev | ||
| * ZLib: zlib1g, zlib1g-dev | * ZLib: zlib1g, zlib1g-dev | ||
| - | * PostgreSQL: postgresql, postgresql-server-dev, postgresql-client, postgresql-contrib | + | * PostgreSQL: postgresql, postgresql-client, postgresql-contrib, libpq5, libpq-dev | 
| * Apache: apache2 | * Apache: apache2 | ||
| * Apache Xerces: libxerces-c28, | * Apache Xerces: libxerces-c28, | ||
| * 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.1265130467.txt.gz · Última modificação: 2010/02/02 17:07 por emerson
                
                