2010-08-19 11 views
10

Tratando de seguir las indicaciones desde: http://github.com/zeromq/jzmq¿Cómo compilo jzmq para ZeroMQ en OSX?

he instalado pkg-config mediante Homebrew y luego ejecute los siguientes comandos: ./configure ./autogen.sh

El configure falla con:

 
checking how to hardcode library paths into programs... immediate 
./configure: line 15263: syntax error near unexpected token `newline' 
./configure: line 15263: ` PKG_CHECK_MODULES(' 
+0

en caso de querer compilar jzmq de tormenta, obtener el código de este repositorio: https://github.com/asmaier/jzmq. Es un fork de https://github.com/nathanmarz/jzmq y contiene dos soluciones para compilar el código en Mac OS X 10.8.3 con Java 1.7.0_25. – asmaier

Respuesta

0

Hice una lista simple sobre el edificio jzmq para MacOS.

  1. Instalar cerveza

    https://brew.sh

  2. Instalar herramientas para la construcción jzmq

    brew install autoconf 
    
    brew install automake 
    
    brew install lib tool 
    
    brew install pkg-config 
    
    brew install [email protected] 
    
  3. Descargar jzmq fuente

    https://github.com/zeromq/jzmq fuente de descarga a ~/algún lugar/jzmq

  4. Añadir enlace simbólico a/usr/local/include

    cd /usr/local/include 
    
    ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/include/zmq.h 
    
    ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/include/zmq_utils.h 
    
  5. Añadir Linke simbólico a/usr/local/lib

    cd /usr/local/lib 
    
    ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/lib/libzmq.3.dylib 
    
    ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/lib/libzmq.a 
    
    ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/lib/libmq.dylib 
    
    ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/lib/pkgconfig/ 
    
  6. Construir jzmq en JNI

    cd ~/somewhere/jzmq 
    
    cd jzmq-jni 
    
    
    ./autogen.sh 
    
    ./configure 
    
    make 
    
    make install 
    
  7. Agregar la opción a las opciones de VM

opciones VM -Djava.library.path=/usr/local/lib

2

Desde el zeromq mailing list:

Bui lding 0MQ del tronco de desarrollo en un sistema operativo de estilo UNIX (Linux, OS X) requiere que se instale pkg-config (http://pkg-config.freedesktop.org/wiki/) . Una compilación de origen normal de 0MQ no requiere pkg-config. En Mac OS X, pkg-config no viene con el sistema, por lo que cuando se intenta hacer ./configure es posible que vea errores como:

./configure: line 23913: syntax error near unexpected token `GLIB,' 
./configure: line 23913: `PKG_CHECK_MODULES(GLIB, glib-2.0 gthread-2.0)' 

Para resolver esto, es necesario instalar el última pkg-config:

tar xzf pkg-config-0.25.tar.gz 
cd pkg-config-0.25 
./configure --prefix=/usr/local/pkg-config-0.25 --datarootdir=/usr/share 
make 
sudo make install 

, entonces tendrá que poner en su /usr/local/pkg-config-0.25/bin $ PATH. Es importante incluir la opción "--datarootdir=/usr/share", que instalará el archivo pkg.m4 en /usr/share/aclocal, donde aclocal será podrá encontrarlo.

Entonces usted puede construir 0MQ:

cd zeromq2 
./autogen.sh # must do this again after installing pkg-config 
./configure # add other options here 
make 
sudo make install 

Editado para reflejar última versión pkg-config (0,25).

1

Vine aquí con la misma pregunta, y no creo que esto se responda. También instalé ZeroMQ y pkg-config a través de Homebrew. /usr/local/share/aclocal/pkg.m4 existe y viene de pkg-config 0.25. Parece que Homebrew ha cumplido con los requisitos enumerados, pero todavía falla.

+0

Si desea que funcione de la caja, no instale usando homebrew. Instálelo descargándolo y compilándolo usted mismo. – Joshua

+0

Uso herramientas como MacPorts o Homebrew, así que no tengo que molestarme con cosas que compilan a mano. Pero, en este caso, me pregunto si el archivo pkg-config para ZeroMQ es correcto. Al editar manualmente (¡uf!) El archivo Makefile para jzmq, pude hacer que se instalara correctamente. – user503667

+0

En realidad, el enlace simbólico del 'pkg.m4' debería ser suficiente. – yawn

1

Intentar compilar jzmq en Mac OS X, resultó ser un poco un dolor de cabeza. Seguí las instrucciones de arriba. Todavía estaba recibiendo siguiente error

error de sintaxis cerca inesperados simbólicos `PKG_CHECK_MODULES

las instrucciones anteriores dicen que copie el archivo pkgk.m4 en /usr/share/aclocal, pero su directorio puede ser diferente. Básicamente necesita el dir que automake busca definiciones de macro.

La macro _PKG_CHECK_MODULES_ se define en el archivo pkg.m4. Este archivo debe instalarse en el appropriate directory, que se busca por automake.De alguna manera, automake se instala dos veces en mi OS X, una en /usr y otra en /Developer/usr. Asegúrate de saber cuál está usando. Solo haga que automake. Si el suyo está en /Developer/usr, copie el archivo pkg.m4 en /Developer/usr/share/aclocal.

18

Una mejor solución es:

eval `brew --config | grep HOMEBREW_PREFIX | sed 's/: /=/'` 
sudo bash -c 'echo '$HOMEBREW_PREFIX/share/aclocal' >> `aclocal --print-ac-dir`/dirlist' 

Esto permitirá que la versión de aclocal que se incluye con OSX para encontrar cualquier macros instaladas por paquetes homebrew.

+0

Esto funcionó para mí. Tal vez debería promoverse para ser la respuesta? – Brian

+2

Funcionó para mí también :) ¡Gracias @Beekhof! –

+0

Haga ejecutar ./autogen.sh después de hacer esto, no solo ./configure. ¡Después de eso funcionó para mí! –

4

Con homebrew, la clave es el mensaje de advertencia:

~/code/foss/java/jzmq$ brew install pkg-config                      
==> Downloading http://pkg-config.freedesktop.org/releases/pkg-config-0.25.tar.gz 
==> ./configure --disable-debug --prefix=/usr/local/Cellar/pkg-config/0.25 --with-pc-path=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11/lib/pkgconfig 
==> make install 
Warning: m4 macros were installed to "share/aclocal". 
Homebrew does not append "/usr/local/share/aclocal" 
to "/usr/share/aclocal/dirlist". If an autoconf script you use 
requires these m4 macros, you'll need to add this path manually. 
==> Summary 
/usr/local/Cellar/pkg-config/0.25: 8 files, 232K, built in 19 seconds 

Si nos fijamos en /usr/local/Cellar/pkg-config/0.25/share/aclocal/, verá:

$ ls /usr/local/Cellar/pkg-config/0.25/share/aclocal/                
pkg.m4 

Es necesario añadir /usr/local/Cellar/pkg-config/0.25/share/aclocal/ a/usr/share/aclocal/listadir, así:

$ cat /usr/share/aclocal/dirlist                   
/usr/local/share/aclocal 
/usr/local/Cellar/pkg-config/0.25/share/aclocal/ 

Y luego vuelva a ejecutar autogen y los otros pasos.

1

Para mí, el problema era que no tenía instalado pkg-config.

+0

Yo también, haciendo 'brew install pkg-config' lo arreglé –

0

En Osx Mountain Lion No tengo el archivo dirlist como dijo Phil Calçado, pero un simple enlace simbólico de /usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4 a /usr/share/aclocal hizo el truco y ahora jzmq funciona bien.