Problemas Específicos de Compilación

¿Qué significa undefined reference to 'compress' ?

En general, significa que se estan teniendo problemas para encontrar o linkar la librería de compresión (libz). Primero, asegúrate de que está instalada. Si no es así, entonces encuentrala e instálala. Debería ir incluida en todas las distribuciones más importantes de sistemas Unix y similares.

Si está instalada correctamente, y todavía aparece el error, entonces comprueba si existe alguna otra copia de libz danzando por ahí. Un lugar donde se esconde a menudo cuando la gente tiene problemas es en /usr/X11R6/lib , ya que XFree86 pone una copia allí. Es seguro simplemente borrarla, pero si no estás seguro, renómbrala como algo parecido a libz.so.renamed , de esa forma el linker no la encontrará, y si tienes problemas en otra parte por haberla renombrado, siempre puedes volverla a renombrar.

¿Qué es AC_TRY_RUN , y por qué está mi máquina advirtiendome de ello?

Algunas veces, cuando ejecutamos aclocal, autogen o make, aparecerán lineas parecidas a: configure.in:171: warning: AC_TRY_RUN called without default to allow cross compiling . No es algo para estar preocupado, y puedes ignorarlo sin riesgos (a menos que estés cross compiling).

Si todavía sientes curiosidad, un cross compiler es un compilador basado en una plataforma que puedes usar para crear código para ser ejecutado en una plataforma diferente. Por ejemplo, alguna gente tiene una versión de GCC instalada en una box GNU/Linux con procesadores Intel que crean binarios para boxes SGI con procesadores MIPS. En este caso estaríamos hablando de un cross compiler.

La macro AC_TRY_RUN se llama para intentar compilar y ejecutar un fragmento de código. Se usa para comprobar si un determinado trozo de código tiene la posibilidad de funcionar en otra máquina o no, y ajustar la configuración consecuentemente. Sin embargo, si estás cross compiling, no puedes ejecutar el fragmento de código, ya que es de una máquina diferente a la que estás. La macro AC_TRY_RUN incluye un parámetro para que diga que hacer en ente caso, pero no hemos probado a cross-compiling GNOME todavía, por lo que sería prematuro configurar este valor. Debido a la ausencia de este valor, aparece un warning.