Jak skompilować jzmq dla ZeroMQ na OSX?

Próbuje podążać za wskazówkami z: http://github.com/zeromq/jzmq

Zainstalowałem pkg-config używając Homebrew i wykonałem następujące polecenia: ./autogen.sh ./ configure

Konfiguracja nie powiodła się z:

checking how to hardcode library paths into programs... immediate
./configure: line 15263: syntax error near unexpected token `newline'
./configure: line 15263: `    PKG_CHECK_MODULES('
Author: Joshua, 2010-08-19

8 answers

Zrobiłem prostą listę o jzmq building dla MacOS.

  1. Install brew

    Https://brew.sh

  2. Narzędzia instalacyjne dla budynku jzmq

    brew install autoconf
    
    brew install automake
    
    brew install libtool
    
    brew install pkg-config
    
    brew install [email protected]
    
  3. Pobierz źródło jzmq

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

  4. Dodaj dowiązanie symboliczne do /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. Dodaj Linke symboliczne do /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. Zbuduj jzmq-jni

    cd ~/somewhere/jzmq
    
    cd jzmq-jni
    
    
    ./autogen.sh
    
    ./configure
    
    make
    
    make install
    
  7. Dodaj opcję do opcji VM

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

 0
Author: SangWoo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-09 03:25:04

Lepszym rozwiązaniem jest:

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

Pozwoli to wersji aclocal dostarczanej z OSX na znalezienie wszelkich makr zainstalowanych przez pakiety homebrew.

 18
Author: Beekhof,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-04 01:49:08

W homebrew kluczem jest komunikat ostrzegawczy:

~/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

Jeśli spojrzysz na /usr / local/Cellar/pkg-config/0.25/share/ aclocal/, zobaczysz:

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

Musisz dodać /usr / local / Cellar / pkg-config/0.25/ share / aclocal / do/usr/share/aclocal / dirlist, tak:

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

A następnie uruchom ponownie autogen i inne kroki.

 4
Author: Phil Calçado,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-24 12:02:01

Z listy dyskusyjnej zeromq :

Budowanie 0MQ od rozwoju trunk on a UNIX style OS (Linux, OS X) wymaga, aby pkg-config ( http://pkg-config.freedesktop.org/wiki / ) być zainstalowany. Regularna Budowa źródła of 0MQ nie wymaga pkg-config. Na Mac OS X pkg-config nie jest dostępny z systemem, więc kiedy próbujesz zrobić ./ configure możesz zobaczyć błędy takie jak:

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

Aby rozwiązać ten problem, musisz zainstalować najnowsze 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

Wtedy będziesz musiał umieścić /usr/local/pkg-config-0.25/bin on your $PATH. Ważne jest, aby uwzględnić "--datarootdir=/usr/share" opcja, który zainstaluje pkg.plik m4 w /usr/share/aclocal, gdzie aclocal będzie być w stanie go znaleźć.

Następnie możesz zbudować 0MQ:

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

Edytowane w celu odzwierciedlenia najnowszej wersji pkg-config (0.25).

 2
Author: caljunior,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-13 16:30:52

Przyszedłem tu z tym samym pytaniem, i nie czuję, że to jest odpowiedź. Zainstalowałem również ZeroMQ i pkg-config przez Homebrew. / usr / local/share/aclocal / pkg.m4 istnieje i pochodzi z pkg-config 0.25. Wydaje się, że Homebrew spełnił wymienione wymagania, ale nadal zawodzi.

 1
Author: user503667,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-10 19:34:43

Próba skompilowania jzmq Na Mac OS X okazała się trochę bolesna. Postępowałem zgodnie z instrukcjami powyżej. Nadal otrzymywałem następujący błąd

Błąd składni przy nieoczekiwanym tokenie "PKG_CHECK_MODULES

Powyższa instrukcja mówi, aby skopiować pkgk.M4 plik do /usr / share / aclocal, ale twój katalog może być inny. Zasadniczo potrzebujesz katalogu, który automake szuka definicji makr.

The Makro _pkg_check_modules_ jest zdefiniowane w pkg.plik m4. Ten plik musi być zainstalowany w odpowiednim katalogu , który jest wyszukiwany przez automake. W jakiś sposób automake jest zainstalowany dwa razy na moim OS X, jeden w /usr i drugi w /Developer / usr. Upewnij się, że wiesz, którego używa. Po prostu zrób który automake . Jeśli twój jest /Developer / usr, skopiuj pkg.M4 plik do /Developer/usr/share/aclocal .

 1
Author: Ilya Sterin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-10 01:11:42

Dla mnie problem polegał na tym, że nie miałem zainstalowanego pkg-config.

 1
Author: George,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-22 06:33:59

Na Osx Mountain Lion Nie mam pliku dirlist, jak powiedział Phil Calçado, ale prosty dowiązanie symboliczne od /usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4 do /usr/share/aclocal sprawiło, że sztuczka i teraz jzmq budować dobrze.

 0
Author: Rex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-22 15:46:01