Как мне скомпилировать jzmq для ZeroMQ в OSX? - PullRequest
10 голосов
/ 19 августа 2010

Пытаясь следовать указаниям от: http://github.com/zeromq/jzmq

Я установил pkg-config с помощью Homebrew и затем запустил следующие команды: ./autogen.sh ./configure

Настройка завершается неудачно с:

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

Ответы [ 8 ]

18 голосов
/ 04 июля 2011

Лучшее решение:

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

Это позволит версии aclocal, поставляемой с OSX, найти любые макросы, установленные пакетами homebrew.

4 голосов
/ 24 октября 2011

Для домашнего напитка ключом является предупреждающее сообщение:

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

Если вы посмотрите на /usr/local/Cellar/pkg-config/0.25/share/aclocal/, вы увидите:

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

Вам необходимо добавить /usr/local/Cellar/pkg-config/0.25/share/aclocal/ в / usr / share / aclocal / dirlist, например:

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

А затем снова запустите autogen и другие шаги.

2 голосов
/ 23 августа 2010

Из списка рассылки :

Здание 0MQ от разработки транк в ОС UNIX (Linux, OS X) требует, чтобы pkg-config (http://pkg -config.freedesktop.org / вики / ) быть установленным Обычная исходная сборка 0MQ не требует pkg-config. В Mac OS X pkg-config не приходит с системой, поэтому при попытке сделать ./configure вы можете увидеть такие ошибки, как:

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

Чтобы решить эту проблему, вам необходимо установить последняя версия 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

Тогда вам нужно будет поставить /usr/local/pkg-config-0.25/bin на вашем $ PATH. Важно включить "--datarootdir=/usr/share" опция, который установит файл pkg.m4 в /usr/share/aclocal, где будет aclocal быть в состоянии найти это.

Тогда вы можете построить 0MQ:

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

Отредактировано для отображения последней версии pkg-config (0.25).

1 голос
/ 22 января 2013

Для меня проблема была в том, что у меня не был установлен pkg-config.

1 голос
/ 10 апреля 2011

Попытка скомпилировать jzmq на Mac OS X оказалась головной болью.Я следовал инструкциям выше.Я все еще получаю следующую ошибку

синтаксическая ошибка рядом с неожиданным токеном `PKG_CHECK_MODULES

Приведенные выше инструкции говорят вам скопировать файл pkgk.m4 / usr / share / aclocal , но ваш каталог может быть другим.В основном вам нужен каталог, в котором automake ищет определения макросов.

Макрос _PKG_CHECK_MODULES_ определен в файле pkg.m4 .Этот файл должен быть установлен в соответствующем каталоге , который ищется automake .Каким-то образом automake устанавливается дважды на мою OS X, одну в / usr и другую в / Developer / usr .Убедитесь, что вы знаете, какой он использует.Просто сделайте , который автоматизирует .Если у вас есть / Developer / usr , скопируйте файл pkg.m4 в / Developer / usr / share / aclocal .

1 голос
/ 10 ноября 2010

Я пришел сюда с тем же вопросом, и я не чувствую, что на него дан ответ. Я также установил ZeroMQ и pkg-config через Homebrew. /usr/local/share/aclocal/pkg.m4 существует и поставляется из pkg-config 0.25. Кажется, что Homebrew выполнил перечисленные требования, но все еще не работает.

0 голосов
/ 15 января 2018

Я сделал простой список о сборке jzmq для MacOS.

  1. Установка brew

    https://brew.sh

  2. Установка инструментов для jzmqbuilding

    brew install autoconf
    
    brew install automake
    
    brew install libtool
    
    brew install pkg-config
    
    brew install zeromq@3.2
    
  3. Загрузить исходный код jzmq

    https://github.com/zeromq/jzmq загрузить исходный код в ~ /where / jzmq

  4. Добавьте символическую ссылку в / 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. Добавьте символическую ссылку в / 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. Добавить опцию к параметрам VM

Опции VM -Djava.library.path=/usr/local/lib

0 голосов
/ 22 января 2013

На Osx Mountain Lion у меня нет файла dirlist, как сказал Фил Калькадо, но простая символическая ссылка от /usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4 до /usr/share/aclocal сделала трюк, и теперь jzmq прекрасно работает.

...