How do I compile jzmq for ZeroMQ on OSX?

前端 未结 8 2181
一个人的身影
一个人的身影 2021-01-31 12:37

Trying to follow the directions from: http://github.com/zeromq/jzmq

I installed pkg-config using Homebrew and then I run the following commands: ./autogen.sh ./configure

相关标签:
8条回答
  • 2021-01-31 12:51

    I came here with the same question, and I don't feel this is answered. I also installed ZeroMQ and pkg-config via Homebrew. /usr/local/share/aclocal/pkg.m4 exists and comes from pkg-config 0.25. It seems that Homebrew has satisfied the requirements listed but it still fails.

    0 讨论(0)
  • 2021-01-31 12:51

    On Osx Mountain Lion I don't have the dirlist file as Phil Calçado said, but a simple symlink from /usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4 to /usr/share/aclocal made the trick and now jzmq build fine.

    0 讨论(0)
  • 2021-01-31 12:56

    From the zeromq mailing list:

    Building 0MQ from the development trunk on a UNIX style OS (Linux, OS X) requires that pkg-config (http://pkg-config.freedesktop.org/wiki/) be installed. A regular source build of 0MQ does not require pkg-config. On Mac OS X, pkg-config does not come with the system, so when you try to do ./configure you may see errors like:

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

    To resolve this, you need to install the latest 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
    

    Then you will need to put /usr/local/pkg-config-0.25/bin on your $PATH. It is important to include the "--datarootdir=/usr/share" option, which will install the pkg.m4 file in /usr/share/aclocal, where aclocal will be able to find it.

    Then you can build 0MQ:

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

    Edited to reflect latest pkg-config version (0.25).

    0 讨论(0)
  • 2021-01-31 12:57

    I made a simple list about jzmq building for MacOS.

    1. Install brew

      https://brew.sh

    2. Install tools for jzmq building

      brew install autoconf
      
      brew install automake
      
      brew install libtool
      
      brew install pkg-config
      
      brew install zeromq@3.2
      
    3. Download jzmq source

      https://github.com/zeromq/jzmq source download to ~/somewhere/jzmq

    4. Add symbolic link to /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. Add symbolic linke to /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. Build jzmq-jni

      cd ~/somewhere/jzmq
      
      cd jzmq-jni
      
      
      ./autogen.sh
      
      ./configure
      
      make
      
      make install
      
    7. Add option to VM options

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

    0 讨论(0)
  • 2021-01-31 13:03

    Trying to compile jzmq on Mac OS X, proved to be a bit of a headache. I followed the instructions above. I was still getting following error

    syntax error near unexpected token `PKG_CHECK_MODULES

    The instructions above tell you to copy the pkgk.m4 file into /usr/share/aclocal, but your directory might be different. Basically you need the dir that automake searches for macro definitions.

    The _PKG_CHECK_MODULES_ macro is defined in the pkg.m4 file. This file must be installed in the appropriate directory, which is searched by automake. Somehow automake is installed twice on my OS X, one in /usr and another in /Developer/usr. Make sure you know which one it's using. Just do which automake. If yours in is /Developer/usr, then copy the pkg.m4 file to /Developer/usr/share/aclocal.

    0 讨论(0)
  • 2021-01-31 13:10

    A better solution is:

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

    This will allow the version of aclocal that ships with OSX to find any macros installed by homebrew packages.

    0 讨论(0)
提交回复
热议问题