7 votos

¿Cómo compilar QGIS con GRASS en Ubuntu?

Estoy en Ubuntu construyendo qgis con el plugin grass. He construido el código de la hierba por separado y utilizado --prefix para proporcionar la ruta

GRASS_PREFIX es /usr/local/grass-6.4.2 y GRASS_INCLUDE_DIR es /usr/local/grass-6.4.2/include y LIB_PATH es /usr/local/grass-6.4.2/lib/libgrass_gproj.so . He desmarcado WITH_GRASS

Cuando compilo qgis obtengo lo siguiente

[  0%] Built target version
[ 17%] Built target qgis_core
[ 19%] Built target qgis_analysis
[ 19%] Built target qgis_networkanalysis
[ 27%] Built target ui
[ 40%] Built target qgis_gui
[ 40%] Built target memoryprovider
[ 41%] Built target delimitedtextprovider
[ 42%] Built target osmprovider
[ 43%] Built target qgissqlanyconnection
[ 44%] Built target sqlanywhereprovider
[ 44%] Built target gdalprovider
[ 45%] Built target mssqlprovider
[ 47%] Built target postgresprovider
[ 48%] Built target spatialiteprovider
[ 48%] Built target crssync
[ 73%] Built target qgis
[ 75%] Built target diagramoverlay
[ 76%] Built target interpolationplugin
[ 76%] Built target dxf2shpconverterplugin
[ 77%] Built target spatialqueryplugin
[ 78%] Built target sqlanywhereplugin
[ 79%] Built target roadgraphplugin
[ 80%] Built target zonalstatisticsplugin
Linking CXX shared module ../../../output/lib/qgis/plugins/libgrassplugin.so
/usr/bin/ld: cannot find -lqgisgrass
collect2: ld returned 1 exit status
make[2]: *** [output/lib/qgis/plugins/libgrassplugin.so] Error 1
make[1]: *** [src/plugins/grass/CMakeFiles/grassplugin.dir/all] Error 2
make: *** [all] Error 2

Por favor, dígame qué es lo que me falta. Gracias.

Saludos, Srikanth


Lo he resuelto. Puedo ver el plugin de césped en qgis. Pero el plugin no es capaz de encontrar las utilidades de la hierba. Entonces traté de construir usando WITH_GRASS = yes para vincular el grassplugin a grass, entonces me sale lo siguiente. Creo que dice que hay un problema de directorio de construcción. No se me ocurre cómo solucionarlo. Por favor, aconsejadme.

Found GRASS: /usr/lib/grass64 (6.4.2)
Touch support disabled
Found Proj: /usr/lib/libproj.so
Found GEOS: /usr/lib/libgeos_c.so
Found GDAL: /usr/lib/libgdal.so (1.9.1)
Found Expat: /usr/lib/x86_64-linux-gnu/libexpat.so
Found Spatialindex: /usr/lib/libspatialindex.so
Found Qwt: /usr/lib/libqwt-qt4.so (5.2.2)
Found Sqlite3: /usr/lib/x86_64-linux-gnu/libsqlite3.so
Found SpatiaLite: /usr/lib/libspatialite.so
Pedantic compiler settings enabled
Debug output enabled
Found Python executable: /usr/bin/python
Found Python version: 2.7.3
Found Python library: /usr/lib/libpython2.7.so
Found SIP version: 4.13.2
Found PyQt4 version: 4.9.1
CMake Error at src/plugins/grass/CMakeLists.txt:116 (ADD_LIBRARY):
  add_library cannot create target "grassplugin" because another target with
  the same name already exists.  The existing target is a module library
  created in source directory
  "/home/develop1/QGIS_Develop/qgis-1.8.0/src/plugins/grass".  See
  documentation for policy CMP0002 for more details.

CMake Error at src/plugins/grass/CMakeLists.txt:140 (TARGET_LINK_LIBRARIES):
  Attempt to add link library "qgisgrass" to target "grassplugin" which is
  not built in this directory.

CMake Error at src/plugins/grass/CMakeLists.txt:140 (TARGET_LINK_LIBRARIES):
  Attempt to add link library "qgis_gui" to target "grassplugin" which is not
  built in this directory.

CMake Error at src/plugins/grass/CMakeLists.txt:140 (TARGET_LINK_LIBRARIES):
  Attempt to add link library "util" to target "grassplugin" which is not
  built in this directory.

CMake Error at src/plugins/grass/CMakeLists.txt:150 (ADD_EXECUTABLE):
  add_executable cannot create target "qgis.g.browser" because another target
  with the same name already exists.  The existing target is an executable
  created in source directory
  "/home/develop1/QGIS_Develop/qgis-1.8.0/src/plugins/grass".  See
  documentation for policy CMP0002 for more details.

CMake Error at src/plugins/grass/CMakeLists.txt:152 (TARGET_LINK_LIBRARIES):
  Attempt to add link library "/usr/lib/x86_64-linux-gnu/libQtGui.so" to
  target "qgis.g.browser" which is not built in this directory.

CMake Error at src/plugins/grass/CMakeLists.txt:152 (TARGET_LINK_LIBRARIES):
  Attempt to add link library "/usr/lib/x86_64-linux-gnu/libQtCore.so" to
  target "qgis.g.browser" which is not built in this directory.

CMake Error at src/plugins/grass/CMakeLists.txt:160 (INSTALL):
  install TARGETS given target "grassplugin" which does not exist in this
  directory.

CMake Error at src/plugins/grass/CMakeLists.txt:172 (INSTALL):
  install TARGETS given target "qgis.g.browser" which does not exist in this
  directory.

3voto

Michael Burr Puntos 181287

A menos que tenga una razón especial (está personalizando el código, por ejemplo), debe utilizar el Repositorio UbuntuGIS .

El 10.04 LTS Lucid La sección de repositorios está cargada de herramientas SIG estables, como QGIS, GRASS, GDAL 1.9.2, Spatialite y PostGIS. La página web 12.04 LTS Preciso tiene casi la misma cantidad disponible y preconstruida, lista para funcionar. Hay más información disponible en Página de UbuntuGIS en Ubuntu Wiki

Puede que alguien más pueda responder a tus preguntas de compilación/construcción. Buena suerte con la codificación.

2voto

Nikos Alexandris Puntos 764

Para compilar SIG Quantum de la fuente, incluido el acceso a Módulos de GRASS-GIS (versión 6.4) Se requiere una instalación de GRASS-GIS en funcionamiento. GRASS-GIS puede ser instalado en Ubuntu de varias maneras, por ejemplo

Nota, lo más probable es que una entrada apropiada en el /etc/ld.so.conf (o en un archivo dedicado dentro de ld.so.conf.d/ que suele llevar el nombre de .conf ) será necesario para que un QuantumGIS en ejecución pueda detectar el plugin QGIS-GRASS libqgisgrass.so . La entrada podría ser como /geo/osgeo/src/grass64_release/dist.x86_64-unknown-linux-gnu/lib o similar -- ¡debería apuntar a las librerías de GRASS!

Una vez que GRASS-GIS se ejecuta en un sistema, QGIS se puede compilar desde el código fuente como se documenta en el INSTALAR incluido en el repositorio de código fuente de QGIS. En resumen, dado que las herramientas de compilación y las dependencias de los paquetes pre-requeridas están instaladas y son funcionales, los pasos son:

  • obtener el último código fuente, utilizando, por ejemplo, git

    git clone git://github.com/qgis/Quantum-GIS.git

  • o descargando un paquete comprimido de la última versión estable (a fecha de esta respuesta 1.8) mediante wget y descomprimirlo

    wget http://qgis.org/downloads/qgis-1.8.0.tar.bz2 tar xvzf qgis_1.1.0.tar.gz

  • introduzca (o cree dentro del directorio de código fuente de QGIS) el directorio donde se realizará la compilación y ejecute el programa ccmake herramienta de configuración

    cd QuantumGIS mkdir build cd build ccmake ..

En este punto, no olvides definir el GRASS_PREFIX es decir, ponlo en el directorio que contiene GRASS-GIS' en tu sistema (puede ser /usr/lib/grass64 o incluso /some/directory/grass64_release/dist.x86_64-unknown-linux-gnu en caso de no instalar GRASS-GIS en todo el sistema/usuario)

Micha Silver recomienda en una entrada de blog relevante, titulada Compilación de QGIS en Fedora 10 , para comprobar la configuración antes de la compilación indicando ccmake -L . Si no se encuentra ningún error, se procede a la compilación propiamente dicha con make (Nota, sin sudo ). En caso de errores (por ejemplo, librerías no localizables), consulte los manuales respectivos, los foros y las listas de correo públicas. La instalación puede completarse entonces simplemente ejecutando sudo make install .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X