Después de la actualización de Gentoo, libpng no puede compilarse normalmente?

  

Antes de la actualización de Gentoo, los usuarios todavía pueden usar libpng normalmente. Después de actualizar el sistema de Gentoo, muchos usuarios tienen una compilación de libpng anormal y no se puede compilar una gran cantidad de paquetes. La siguiente serie pequeña le presentará el método para resolver la compilación de libpng que no es normal.

Después de haber actualizado el sistema, se le pedirá que actualizar libpng, es necesario volver a emerger @ conservados reconstruir, pero muchos paquetes totalmente compilado, sin embargo, y las siguientes soluciones.

1, gnome-extra /libgda no se compiló

En el momento del enlace, no se pudo encontrar el indicador -lpng14, obviamente porque libpng se actualizó a 1.5. Sin embargo, después de buscar todos los Makefiles en libgda, no hay lugar para encontrar un lugar para enlazar a la biblioteca de enlaces dinámicos de libpng14. La última razón para encontrarlo es porque hay muchos archivos xxx.la en el directorio /usr /lib64 /, que libtool usa para administrar las dependencias. Algunas de las bibliotecas de enlaces dinámicos tienen una dependencia llamada -lpng14.

Después de encontrar la razón, primero encuentre todos los lugares donde el comando grep escribe el comando write-lpng14 y vuelva a abrir estas bibliotecas. Sin embargo, se encontró que algunas bibliotecas volvieron a aparecer y las dependencias aún no se corrigieron. Finalmente, al cambiar manualmente estos archivos, cambie a -lpng15.

Re-emerge está bien.

2, el compilador opencv ha fallado

el compilador opencv ha fallado, el indicador es un error: ‘ MAX_MEM_LEVEL ’ no se declaró en este alcance y otros errores. Debido a que libpng1.5.x oculta la estructura del archivo png original, solo hay una declaración previa y un montón de typedefs en el archivo de encabezado. Estos deben ser el zlib en el que se basó originalmente al definir estas estructuras de imagen png, y ahora no puede confiar en ellas de manera indirecta.

La solución es escribir un parche que obligue al archivo modules /highgui /src /grfmt_png.cpp a incluir el archivo de encabezado zlib.h. El contenido del parche es el siguiente:

— modules /highgui /src /grfmt_png.cpp.old 2011-09-19 19: 36: 49.759516862 +0800

+++ modules /highgui /src /grfmt_png.cpp 2011-09-19 19: 28: 04.302185712 +0800

@@ -55,6 +55,7 @@

#include "libpng /png.h"

#else

#include "png. h》

+ # include zlib.h

#endif

#include " grfmt_png.hpp "

Escriba un portage local, compile Ok opencv

También hay wxPython, esto realmente no es posible, ya que libpng1.5.x oculta la estructura de la imagen png, lo que da como resultado el acceso original a la estructura directamente a través del error del puntero de la estructura, no Parche

La solución anterior al problema es que no se puede compilar libpng después de la actualización de Gentoo. Este artículo presenta las soluciones de las dos situaciones, que se pueden resolver de acuerdo con la situación específica del usuario.

Copyright © Conocimiento de Windows All Rights Reserved