Error de compilación: cómo solucionar el archivo de encabezado que falta

Error de compilación: cómo solucionar el archivo de encabezado que falta

Estoy tratando de construircuneiformedesde la fuente con soporte para imageMagick, pero parece que al paquete Debian le falta un archivo de encabezado. Cuando lo estoy ejecutando, makefalla al final del proceso:

[100%] Building CXX object cuneiform_src/cli/CMakeFiles/cuneiform-cli.dir/cuneiform-cli.cpp.o
In file included from /usr/include/ImageMagick-6/Magick++/Include.h:13:0,
                 from /usr/include/ImageMagick-6/Magick++.h:9,
                 from /tmp/cuneiform-linux-1.1.0/cuneiform_src/cli/cuneiform-cli.cpp:156:
/usr/include/ImageMagick-6/magick/magick-config.h:21:38: fatal error: magick/magick-baseconfig.h: No such file or directory
 #include "magick/magick-baseconfig.h"
                                      ^
compilation terminated.

Al buscar el encabezado, resulta que se puede encontrar en un directorio ImageMagick diferente:

$ find /usr/include/ -name "*baseconfig*"
/usr/include/x86_64-linux-gnu/ImageMagick-6/magick/magick-baseconfig.h7

La tonta vinculación suave del archivo que falta no resolvió el problema.

¿Cómo puedo hacer que el compilador utilice el otro directorio de inclusión?

Respuesta1

Cuneiforme CMakeLists.txtno incluye la ruta de inclusión específica del arco de las bibliotecas. Para solucionar este problema para ImageMagick, cambie la línea 40 de cuneiform_src/CMakeLists.txtdesde

include_directories(${ImageMagick_Magick++_INCLUDE_DIR})

a

include_directories(${ImageMagick_Magick++_INCLUDE_DIR} ${ImageMagick_Magick++_ARCH_INCLUDE_DIR})

La integración de CMake pkg-configrecupera la información correctamente.

Respuesta2

Árbitro.http://bazaar.launchpad.net/~jpakkane/cuneiform-linux/trunk/files

Los archivos en cuneiform_src/ tienen una marca de tiempo = 2010 o anterior. No es de extrañar que no se encuentre la nueva y elegante ruta de Debian. ( magick/magick-baseconfig.h no encontrado ).

Una solución fácil: #mkdir /usr/local/include/magick

# cp /usr/include/x86_64-linux-gnu/ImageMagick-6/magick/magick-baseconfig.h /usr/local/include/magick/

... Y cuneiformse crea el ejecutable.

información relacionada