Essa é uma revisão anterior do documento!
Tabela de conteúdos
Compilando o TerraOGC no Linux
Variáveis de ambiente
Antes de compilar o TerraOGC, é necessário ajustar algumas variáveis de ambiente, normalmente no arquivo ~.bashrc
. Coloque neste arquivo a seguinte configuração:
# TerraLib Devel TERRALIB_DIR=/home/emerson/projetos/terralib LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TERRALIB_DIR/terralibx/Release LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TERRALIB_DIR/extensions/terramanager/lib LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TERRALIB_DIR/extensions/terraOGC/lib export LD_LIBRARY_PATH
Troque a variável TERRALIB_DIR
pelo valor usado no seu sistema. Antes de usar essas configurações você precisa abrir um novo terminal para que as alterações tenham efeito.
Só lembrar que o uso de LD_LIBRARY_PATH
é para ambientes de programação. Em ambientes de produção é melhor deixar as libs em pastas reconhecidas pelo linker. Mais detalhes neste artigo ou este.
TerraLib debug
Caso queira usar a TerraLib no modo Debug, troque a linha:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TERRALIB_DIR/terralibx/Release
por:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TERRALIB_DIR/terralibx/Debug
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, para versões anteriores da TerraLib corrigir alguns arquivos.
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 terraOGC/build/linux/*cgi/*.pro
.
De:
LIBS += -L../../../../../terralibx/lib -lterralibtiff
Para:
LIBS += -L../../../../../terralibx/lib -ltiff
Mandriva 2007 x86
- No Mandriva, precisa alterar o arquivo
/usr/lib/qt3/mkspecs/linux-g++/qmake.conf
, tirando o/usr/lib
da linkagem. Troque as linhasQMAKE_LIBDIR_X11 = /usr/lib QMAKE_LIBDIR_OPENGL = /usr/lib
por
QMAKE_LIBDIR_X11 = QMAKE_LIBDIR_OPENGL =
OpenSuse 11.0 x86_64
- No OpenSuse 11.0 precisa alterar o arquivo
/usr/lib/qt3/mkspecs/default/qmake.conf
, tirando o/usr/lib
da linkagem. Troque as linhasQMAKE_LIBDIR = /usr/lib64/ QMAKE_LIBDIR_OPENGL = /usr/lib64/
por
QMAKE_LIBDIR = QMAKE_LIBDIR_OPENGL =
Outras distros
CentOS 5.2 x86
O CentOS não configura o /usr/include
por padrão quando usando o QMake. Para consertar edite o arquivo /usr/lib/qt-3.3/mkspecs/linux-g++/qmake.conf
.
De:
QMAKE_INCDIR =
Para:
QMAKE_INCDIR = /usr/include
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, vários warnings começaram a aparecer na compilação. Você pode encontrar algo nos links: Referência e manual
Dependências
Alguns pacotes necessários para compilar e usar o TerraOGC. Os nomes podem variar de distro para distro. Aqui seguem os do Mandriva:
- GD (criação de imagens)
- ZLib (compactação)
- PostgreSQL (SGBD)
- Apache (Web Server)
- Apache Xerces (API XML) >= 2.8.0
- cURL (API Web Client)
- LibZip (API p/ PKZip): Algumas distros não têm. Então baixe aqui.
Mandriva
- GD: libgd2, libgd2-devel
- ZLib: zlib1, zlib1-devel
- PostgreSQL: postgresql, postgresql-devel, postgresql-contrib, postgresql-plpgsql, postgresql-server
- Apache: apache-base, apache-conf
- Apache Xerces: libxerces-c0, libxerces-c0-devel
- cURL: libcurl4, libcurl-devel
- LibZip: libzip, libzip1-devel
OpenSUSE
- GD: gd, gd-devel
- ZLib: zlib, zlib-devel
- PostgreSQL: postgresql, postgresql-devel, postgresql-contrib, postgresql-server
- Apache: apache2
- Apache Xerces: Xerces-c, libXerces-c-devel
- cURL: libcurl4, libcurl-devel
- LibZip: libzip1 e libzip-devel
11.2
- libqt4-devel: para obter o QMake
CentOS
- GD: gd e gd-devel
- ZLib: zlib e zlib-devel
- PostgreSQL: postgresql, postgresql-libs, postgresql-server, postgresql-contrib, postgresql-pl, postgresql-devel
- Apache: httpd
- Apache Xerces: Só encontrei pacotes ⇐ 2.7.0. Para gerar os pacotes:
- Baixe a versão 2.8.0 do site
- Para criar os pacotes use o comando:
# rpmbuild -ta xerces-c-src_2_8_0.tar.gz
- Instale os pacotes xerces-c e xerces-c-devel
- cURL: curl e curl-devel
- LibZip:
- Baixe a última versão do site
- Descompacte e entre no diretório
- Siga os procedimentos normais de instalação (./configure, make, su, make install)
- O default é instalar tudo no
/usr/local/
, inclusive o zip.h
- Extras: glibc-headers para código em C
Debian 5
- GD: libgd2-xpm, libgd2-xpm-dev
- ZLib: zlib1g, zlib1g-dev
- PostgreSQL: postgresql, postgresql-server-dev, postgresql-client, postgresql-contrib
- Apache: apache2
- Apache Xerces: libxerces-c28, libxerces-c2-dev
- cURL: libcurl3, libcurl4-openssl-dev
- LibZip: libzip1, libzip-dev
Projeto all
- Vá para a pasta
terraOGC/build/linux/all
- Execute o QMake e em seguida o Make da seguinte forma:
qmake TE_DATABASE_OPTION="$1" TE_PROJECT_TYPE="$2" make
- Substitua $1 e $2 de acordo com a tabela abaixo:
Opção | $1 | $2 |
---|---|---|
SGBD MySQL | HAS_MYSQL | |
SGBD PostgreSQL | HAS_POSTGRESQL | |
SGBD MySQL e PostgreSQL | HAS_MYSQL HAS_POSTGRESQL | |
Versão release | RELEASE (default) | |
Versão debug | DEBUG |
- Os projetos da TerraLib e do TerraManager serão compilados também (se ainda não foram)
- Para gerar o Makefile apenas para o TerraOGC, adicione mais um parâmetro na chamada do qmake:
qmake TE_DATABASE_OPTION="$1" TE_PROJECT_TYPE="$2" ONLY_TEOGC=1
- Este flag é útil para desenvolvimento, quando é necessário um rebuild-all no projeto (
make clean && make
), mas sem precisar compilar a TerraLib e o TerraManager novamente.
Exemplos
- Para compilar o TerraOGC com suporte a PostgreSQL e na versão release:
qmake TE_DATABASE_OPTION="HAS_POSTGRESQL"
- Para compilar o TerraOGC com suporte a PostgreSQL e MySQL na versão debug
qmake TE_DATABASE_OPTION="HAS_POSTGRESQL HAS_MYSQL" TE_PROJECT_TYPE="DEBUG"
- 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" ONLY_TEOGC=1